diff --git a/gaspar/database.py b/gaspar/database.py
index 1cfa350..4d3b1ae 100644
--- a/gaspar/database.py
+++ b/gaspar/database.py
@@ -8,7 +8,7 @@ import sqlite3
import logging
import os
-log = logging.getLogger("gaspar.%s" % __name__)
+log = logging.getLogger(__name__)
class DBInitException(Exception):
""" Exception at DB Init """
diff --git a/gaspar/gaspar.py b/gaspar/gaspar.py
index 4a69e3c..6df8490 100644
--- a/gaspar/gaspar.py
+++ b/gaspar/gaspar.py
@@ -2,28 +2,20 @@ import os
import sys
import logging
from urllib import parse
-from datetime import datetime
from telegram import *
from telegram.ext import Updater, MessageHandler, CommandHandler, filters
from .rutracker import Torrent
from .notify import update_watcher
from .database import DataBase
+from .tools import format_topic
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
-log = logging.getLogger("gaspar.%s" % __name__)
+log = logging.getLogger(__name__)
torrent = Torrent()
-def sizeof_fmt(num, suffix='B'):
- num = int(num)
- for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']:
- if abs(num) < 1024.0:
- return "%3.1f%s%s" % (num, unit, suffix)
- num /= 1024.0
- return "%.1f%s%s" % (num, 'Yi', suffix)
-
def main():
token = os.environ.get('TG_TOKEN')
if not token:
@@ -50,13 +42,14 @@ def main():
torrent.db.save_tor(torrent.meta)
torrent.db.save_user(update.message.chat)
torrent.db.save_alert(update.message.chat['id'], torrent.meta['id'])
- reg_time = datetime.utcfromtimestamp(int(torrent.meta['reg_time'])
- ).strftime('%b-%d-%Y')
- msg = f"""{torrent.meta['topic_title']}
-Size: {sizeof_fmt(torrent.meta['size'])}
-Hash: {torrent.meta['info_hash']}
-Updated: {reg_time}"""
- update.message.reply_text(msg, parse_mode='HTML')
+ msg = format_topic(
+ torrent.meta['id'],
+ torrent.meta['topic_title'],
+ torrent.meta['size'],
+ torrent.meta['info_hash'],
+ torrent.meta['reg_time'],
+ pre='You will be alerted about\n')
+ update.message.reply_text(msg, parse_mode='HTML', disable_web_page_preview=True)
def list_alerts(update, context):
@@ -70,12 +63,12 @@ def main():
return True
msg = "Configured alerts:\n"
for alert in alerts:
- reg_time = datetime.utcfromtimestamp(int(alert['reg_time'])
- ).strftime('%b-%d-%Y')
- msg += f"""{alert['topic_title']}
- 💿Size: {sizeof_fmt(alert['size'])}
- #️⃣Hash: {alert['info_hash']}
- 📅Updated: {reg_time}\n"""
+ msg += format_topic(
+ alert['id'],
+ alert['topic_title'],
+ alert['size'],
+ alert['info_hash'],
+ alert['reg_time'])
update.message.reply_text(msg, parse_mode='HTML', disable_web_page_preview=True)
diff --git a/gaspar/notify.py b/gaspar/notify.py
index 4145ddd..39aa026 100644
--- a/gaspar/notify.py
+++ b/gaspar/notify.py
@@ -3,10 +3,11 @@ import threading
import logging
from datetime import datetime
from .rutracker import Torrent
+from .tools import format_topic
UPDATE_INTERVAL = 2 * 60 * 60 # in secs.
-log = logging.getLogger("gaspar.%s" % __name__)
+log = logging.getLogger(__name__)
torrent = Torrent()
@@ -43,6 +44,14 @@ def update_watcher(bot):
💿Size: {sizeof_fmt(torrent.meta['size'])}
#️⃣Hash: {torrent.meta['info_hash']}
📅Updated: {reg_time}\n"""
+
+ msg = format_topic(
+ torrent.meta['id'],
+ torrent.meta['topic_title'],
+ torrent.meta['size'],
+ torrent.meta['info_hash'],
+ torrent.meta['reg_time'],
+ pre='Topic has been updated\n')
subs = torrent.db.get_subscribers(alert['id'])
for sub in subs:
bot.sendMessage(sub, msg, parse_mode='HTML', disable_web_page_preview=True)
diff --git a/gaspar/rutracker.py b/gaspar/rutracker.py
index 8dafe28..a514b90 100644
--- a/gaspar/rutracker.py
+++ b/gaspar/rutracker.py
@@ -3,7 +3,7 @@ import logging
import re
from .database import DataBase
-log = logging.getLogger("gaspar.%s" % __name__)
+log = logging.getLogger(__name__)
class Torrent:
def __init__(self, tor_id=None):
diff --git a/gaspar/tools.py b/gaspar/tools.py
new file mode 100644
index 0000000..f564284
--- /dev/null
+++ b/gaspar/tools.py
@@ -0,0 +1,18 @@
+from datetime import datetime
+
+def format_topic(tor_id, topic_title, size, info_hash, reg_time, pre=None):
+ def sizeof_fmt(num, suffix='B'):
+ num = int(num)
+ for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']:
+ if abs(num) < 1024.0:
+ return "%3.1f%s%s" % (num, unit, suffix)
+ num /= 1024.0
+ return "%.1f%s%s" % (num, 'Yi', suffix)
+ size = sizeof_fmt(size)
+ reg_time = datetime.utcfromtimestamp(int(reg_time)
+ ).strftime('%b-%d-%Y')
+ msg = f"""{pre}{topic_title}
+💿 Size: {size}
+#️⃣ Hash: {info_hash}
+📅 Updated: {reg_time}
\n"""
+ return msg