mirror of
https://github.com/house-of-vanity/gaspar.git
synced 2025-07-06 10:14:07 +00:00
Added setup.
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,6 @@
|
||||
__pycache__/
|
||||
data.sqlite
|
||||
build/
|
||||
dist/
|
||||
gaspar.egg-info/
|
||||
|
||||
|
5
README
Normal file
5
README
Normal 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
0
gaspar/__init__.py
Normal 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
|
@ -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()
|
@ -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__)
|
||||
|
@ -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
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
||||
python-telegram-bot==12.7
|
45
setup.py
Normal file
45
setup.py
Normal 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'])
|
Reference in New Issue
Block a user