mirror of
https://github.com/house-of-vanity/gaspar.git
synced 2025-07-06 18:24:07 +00:00
Improve styling and logging.
This commit is contained in:
@ -8,7 +8,7 @@ import sqlite3
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
log = logging.getLogger("gaspar.%s" % __name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
class DBInitException(Exception):
|
class DBInitException(Exception):
|
||||||
""" Exception at DB Init """
|
""" Exception at DB Init """
|
||||||
|
@ -2,28 +2,20 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
from urllib import parse
|
from urllib import parse
|
||||||
from datetime import datetime
|
|
||||||
from telegram import *
|
from telegram import *
|
||||||
from telegram.ext import Updater, MessageHandler, CommandHandler, filters
|
from telegram.ext import Updater, MessageHandler, CommandHandler, filters
|
||||||
from .rutracker import Torrent
|
from .rutracker import Torrent
|
||||||
from .notify import update_watcher
|
from .notify import update_watcher
|
||||||
from .database import DataBase
|
from .database import DataBase
|
||||||
|
from .tools import format_topic
|
||||||
|
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
level=logging.INFO,
|
level=logging.INFO,
|
||||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||||
log = logging.getLogger("gaspar.%s" % __name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
torrent = Torrent()
|
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():
|
def main():
|
||||||
token = os.environ.get('TG_TOKEN')
|
token = os.environ.get('TG_TOKEN')
|
||||||
if not token:
|
if not token:
|
||||||
@ -50,13 +42,14 @@ def main():
|
|||||||
torrent.db.save_tor(torrent.meta)
|
torrent.db.save_tor(torrent.meta)
|
||||||
torrent.db.save_user(update.message.chat)
|
torrent.db.save_user(update.message.chat)
|
||||||
torrent.db.save_alert(update.message.chat['id'], torrent.meta['id'])
|
torrent.db.save_alert(update.message.chat['id'], torrent.meta['id'])
|
||||||
reg_time = datetime.utcfromtimestamp(int(torrent.meta['reg_time'])
|
msg = format_topic(
|
||||||
).strftime('%b-%d-%Y')
|
torrent.meta['id'],
|
||||||
msg = f"""{torrent.meta['topic_title']}
|
torrent.meta['topic_title'],
|
||||||
<b>Size:</b> {sizeof_fmt(torrent.meta['size'])}
|
torrent.meta['size'],
|
||||||
<b>Hash: </b> {torrent.meta['info_hash']}
|
torrent.meta['info_hash'],
|
||||||
<b>Updated: </b>{reg_time}"""
|
torrent.meta['reg_time'],
|
||||||
update.message.reply_text(msg, parse_mode='HTML')
|
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):
|
def list_alerts(update, context):
|
||||||
@ -70,12 +63,12 @@ def main():
|
|||||||
return True
|
return True
|
||||||
msg = "<b>Configured alerts:</b>\n"
|
msg = "<b>Configured alerts:</b>\n"
|
||||||
for alert in alerts:
|
for alert in alerts:
|
||||||
reg_time = datetime.utcfromtimestamp(int(alert['reg_time'])
|
msg += format_topic(
|
||||||
).strftime('%b-%d-%Y')
|
alert['id'],
|
||||||
msg += f"""<a href='https://rutracker.org/forum/viewtopic.php?t={alert['id']}'><b>{alert['topic_title']}</b></a>
|
alert['topic_title'],
|
||||||
<b>💿Size:</b> {sizeof_fmt(alert['size'])}
|
alert['size'],
|
||||||
<b>#️⃣Hash: </b> {alert['info_hash']}
|
alert['info_hash'],
|
||||||
<b>📅Updated: </b>{reg_time}\n"""
|
alert['reg_time'])
|
||||||
update.message.reply_text(msg, parse_mode='HTML', disable_web_page_preview=True)
|
update.message.reply_text(msg, parse_mode='HTML', disable_web_page_preview=True)
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,10 +3,11 @@ import threading
|
|||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from .rutracker import Torrent
|
from .rutracker import Torrent
|
||||||
|
from .tools import format_topic
|
||||||
|
|
||||||
UPDATE_INTERVAL = 2 * 60 * 60 # in secs.
|
UPDATE_INTERVAL = 2 * 60 * 60 # in secs.
|
||||||
|
|
||||||
log = logging.getLogger("gaspar.%s" % __name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
torrent = Torrent()
|
torrent = Torrent()
|
||||||
|
|
||||||
@ -43,6 +44,14 @@ def update_watcher(bot):
|
|||||||
<b>💿Size:</b> {sizeof_fmt(torrent.meta['size'])}
|
<b>💿Size:</b> {sizeof_fmt(torrent.meta['size'])}
|
||||||
<b>#️⃣Hash: </b> {torrent.meta['info_hash']}
|
<b>#️⃣Hash: </b> {torrent.meta['info_hash']}
|
||||||
<b>📅Updated: </b>{reg_time}\n"""
|
<b>📅Updated: </b>{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='<i>Topic has been updated</i>\n')
|
||||||
subs = torrent.db.get_subscribers(alert['id'])
|
subs = torrent.db.get_subscribers(alert['id'])
|
||||||
for sub in subs:
|
for sub in subs:
|
||||||
bot.sendMessage(sub, msg, parse_mode='HTML', disable_web_page_preview=True)
|
bot.sendMessage(sub, msg, parse_mode='HTML', disable_web_page_preview=True)
|
||||||
|
@ -3,7 +3,7 @@ import logging
|
|||||||
import re
|
import re
|
||||||
from .database import DataBase
|
from .database import DataBase
|
||||||
|
|
||||||
log = logging.getLogger("gaspar.%s" % __name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
class Torrent:
|
class Torrent:
|
||||||
def __init__(self, tor_id=None):
|
def __init__(self, tor_id=None):
|
||||||
|
18
gaspar/tools.py
Normal file
18
gaspar/tools.py
Normal file
@ -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}<a href='https://rutracker.org/forum/viewtopic.php?t={tor_id}'><b>{topic_title}</b></a>
|
||||||
|
<b>💿 Size:</b> <code>{size}</code>
|
||||||
|
<b>#️⃣ Hash:</b> <code>{info_hash}</code>
|
||||||
|
<b>📅 Updated:</b> <code>{reg_time}</code>\n"""
|
||||||
|
return msg
|
Reference in New Issue
Block a user