Added setup.

This commit is contained in:
AB
2020-05-24 22:00:20 +03:00
parent 46e59d3eb6
commit 12994f774c
10 changed files with 70 additions and 9 deletions

4
.gitignore vendored
View File

@ -1,2 +1,6 @@
__pycache__/
data.sqlite
build/
dist/
gaspar.egg-info/

5
README Normal file
View File

@ -0,0 +1,5 @@
### Gaspar telegram bot
Telegram bot for notification about topic update on rutracker via telegram.
also you can use already runned bot instance - @let_you_know_bot

0
gaspar/__init__.py Normal file
View File

View File

@ -6,6 +6,7 @@
import sqlite3
import logging
import os
log = logging.getLogger("gaspar.%s" % __name__)
@ -18,7 +19,7 @@ class DBInitException(Exception):
class DataBase:
"""This class create or use existent SQLite database file. It provides
high-level methods for database."""
def __init__(self, scheme, basefile='data.sqlite'):
def __init__(self, scheme, basefile='/usr/share/gaspar/data.sqlite'):
"""
Constructor creates new SQLite database if
it doesn't exist. Uses SQL code from file for DB init.
@ -30,6 +31,7 @@ class DataBase:
self.basefile = basefile
try:
conn = self.connect(basefile=basefile)
log.info("Using '%s' base file.", os.path.realpath(basefile))
except:
log.debug('Could not connect to DataBase.')
return None

View File

@ -1,12 +1,13 @@
import os
import sys
import logging
from urllib import parse
from rutracker import Torrent
from notify import update_watcher
from datetime import datetime
from database import DataBase
from telegram import *
from telegram.ext import Updater, MessageHandler, CommandHandler, filters
from .rutracker import Torrent
from .notify import update_watcher
from .database import DataBase
logging.basicConfig(
level=logging.INFO,
@ -25,6 +26,9 @@ def sizeof_fmt(num, suffix='B'):
def main():
token = os.environ.get('TG_TOKEN')
if not token:
log.error("Env var TG_TOKEN isn't set.")
sys.exit(1)
"""Run bot."""
def add(update, context):
@ -78,8 +82,8 @@ def main():
updater = Updater(token, use_context=True)
update_watcher(updater.bot)
updater.dispatcher.add_handler(MessageHandler(filters.Filters.text, add))
updater.dispatcher.add_handler(CommandHandler('list', list_alerts))
updater.dispatcher.add_handler(MessageHandler(filters.Filters.text, add))
updater.start_polling()
updater.idle()

View File

@ -1,10 +1,10 @@
import time
import threading
import logging
from rutracker import Torrent
from datetime import datetime
from .rutracker import Torrent
UPDATE_INTERVAL = 6 * 60 * 60 # in secs
UPDATE_INTERVAL = 2 * 60 * 60 # in secs.
log = logging.getLogger("gaspar.%s" % __name__)

View File

@ -1,13 +1,13 @@
import urllib.request, json
from database import DataBase
import logging
import re
from .database import DataBase
log = logging.getLogger("gaspar.%s" % __name__)
class Torrent:
def __init__(self, tor_id=None):
self.db = DataBase("scheme.sql")
self.db = DataBase("/usr/share/gaspar/scheme.sql")
self.api_url = "http://api.rutracker.org/v1/"
self.tor_id = tor_id
self.meta = None

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
python-telegram-bot==12.7

45
setup.py Normal file
View File

@ -0,0 +1,45 @@
import os, subprocess
from setuptools import setup
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
def get_requires(rfile):
"""Get list of required Python packages."""
requires = list()
with open(rfile, "r") as reqfile:
for line in reqfile.readlines():
requires.append(line.strip())
return requires
setup(
name = "gaspar",
version = "0.0.1",
author = "UltraDesu",
author_email = "ultradesu@hexor.ru",
description = ("Telegram bot. Keep an eye on rutracker.org topics and let you "
"know if it has been updated."),
license = "WTFPL",
keywords = "telegram bot",
url = "https://github.com/house-of-vanity/gapsar",
packages=['gaspar'],
long_description=read('README'),
classifiers=[
"Development Status :: 3 - Alpha",
"Topic :: Utilities",
],
entry_points={
'console_scripts': [
'gaspar = gaspar.gaspar:main',
]
},
data_files=[
("/usr/share/gaspar", ['gaspar/scheme.sql']),
],
install_requires=get_requires("./requirements.txt")
)
os.umask(0o666)
subprocess.call(['chmod', '-R', 'a+rwX', '/usr/share/gaspar'])