diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c18dd8d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/__pycache__/database.cpython-38.pyc b/__pycache__/database.cpython-38.pyc deleted file mode 100644 index 1657684..0000000 Binary files a/__pycache__/database.cpython-38.pyc and /dev/null differ diff --git a/__pycache__/rutracker.cpython-38.pyc b/__pycache__/rutracker.cpython-38.pyc deleted file mode 100644 index a058601..0000000 Binary files a/__pycache__/rutracker.cpython-38.pyc and /dev/null differ diff --git a/data.sqlite b/data.sqlite index daed304..90fbfc0 100644 Binary files a/data.sqlite and b/data.sqlite differ diff --git a/database.py b/database.py index 8de0ffa..b0a955f 100644 --- a/database.py +++ b/database.py @@ -215,7 +215,7 @@ class DataBase: 'tor_status', 'seeders', 'topic_title', - 'seeder_last_seen' + 'seeder_last_seen', ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ? )""" self.execute(sql, attrs) @@ -250,7 +250,7 @@ class DataBase: tor_data["id"], )) - def save_tor(self, tor_data, chat_instance): + def save_tor(self, tor_data): sql = """INSERT OR IGNORE INTO torrents( 'id', 'info_hash', @@ -261,9 +261,8 @@ class DataBase: 'tor_status', 'seeders', 'topic_title', - 'seeder_last_seen', - 'user_id' - ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ? )""" + 'seeder_last_seen' + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""" self.execute(sql, ( tor_data["id"], tor_data["info_hash"], @@ -275,8 +274,8 @@ class DataBase: tor_data["seeders"], tor_data["topic_title"], tor_data["seeder_last_seen"], - chat_instance['id'], )) + def save_user(self, chat_instance): sql = """INSERT OR IGNORE INTO users( 'id', 'username', diff --git a/main.py b/main.py index 6de5e88..99b5ed5 100644 --- a/main.py +++ b/main.py @@ -1,10 +1,11 @@ +import os +import logging +from urllib import parse from rutracker import Torrent from datetime import datetime from database import DataBase from telegram import * from telegram.ext import Updater, MessageHandler, CommandHandler, filters -from urllib import parse -import logging logging.basicConfig( level=logging.DEBUG, @@ -19,6 +20,7 @@ def sizeof_fmt(num, suffix='B'): return "%.1f%s%s" % (num, 'Yi', suffix) def main(): + token = os.environ.get('TG_TOKEN') """Run bot.""" def add(update, context): @@ -32,8 +34,12 @@ def main(): else: update.message.reply_text("Send me a URL to rutracker.org topic.") return - log.debug(update.message.chat) - torrent = Torrent(tor_id, update.message.chat) + torrent = Torrent(tor_id) + torrent.db.save_tor(torrent.meta) + torrent.db.save_user(update.message.chat) + torrent.db.save_alert(update.message.chat['id'], torrent.meta['id']) +# log.debug(torrent.is_outdated()) +# log.debug(torrent.update()) reg_time = datetime.utcfromtimestamp(int(torrent.meta['reg_time']) ).strftime('%b-%d') msg = f"""{torrent.meta['topic_title']} @@ -49,7 +55,7 @@ def main(): 'Hello {}'.format(update.message.from_user.first_name)) - updater = Updater("539189256:AAHqrL6nTmv5g0mGoPQownO0vrNRvhPFq7I", use_context=True) + updater = Updater(token, use_context=True) updater.dispatcher.add_handler(MessageHandler(filters.Filters.text, add)) diff --git a/rutracker.py b/rutracker.py index db50679..0ad5d44 100644 --- a/rutracker.py +++ b/rutracker.py @@ -6,12 +6,11 @@ import re log = logging.getLogger(__name__) class Torrent: - def __init__(self, tor_id, chat_instance): + def __init__(self, tor_id): self.db = DataBase("scheme.sql") self.api_url = "http://api.rutracker.org/v1/" self.meta = self.get_tor_topic_data(tor_id) log.debug("Torrent info: %s", self.meta) - self.db.save_tor(self.meta, chat_instance) def get_tor_topic_data(self, tor_id): data = dict() diff --git a/scheme.sql b/scheme.sql index 4c1750e..2e6074e 100644 --- a/scheme.sql +++ b/scheme.sql @@ -10,7 +10,6 @@ CREATE TABLE IF NOT EXISTS "torrents" ( "seeders" TEXT, "topic_title" TEXT, "seeder_last_seen" TEXT, - "user_id" TEXT, PRIMARY KEY("id") ); CREATE TABLE IF NOT EXISTS "torrents_history" ( @@ -24,7 +23,6 @@ CREATE TABLE IF NOT EXISTS "torrents_history" ( "tor_status" TEXT, "seeders" TEXT, "topic_title" TEXT, - "user_id" TEXT, "seeder_last_seen" TEXT ); CREATE TABLE IF NOT EXISTS "users" ( @@ -33,5 +31,9 @@ CREATE TABLE IF NOT EXISTS "users" ( first_name TEXT, last_name TEXT ); +CREATE TABLE IF NOT EXISTS "alerts" ( + user_id TEXT, + tor_id TEXT + ); COMMIT;