diff --git a/app/__init__.py b/app/__init__.py index e69de29..f5518ae 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -0,0 +1 @@ +from . import trolling diff --git a/app/admin.py b/app/admin.py new file mode 100644 index 0000000..cdb895f --- /dev/null +++ b/app/admin.py @@ -0,0 +1,15 @@ +from imp import reload + +from . import config +from . import me +from . import query_log +from . import reminder +from . import report + + +def reload_modules(): + reload(reminder) + reload(report) + reload(config) + reload(me) + reload(query_log) diff --git a/app/bot.py b/app/bot.py index d2cc3d5..5663dfc 100644 --- a/app/bot.py +++ b/app/bot.py @@ -10,10 +10,11 @@ from telebot import types from . import reminder from . import report +from .admin import reload_modules from .config import bot, URL_RX, ALLOWED_WORDS, ADMIN_ID, TOKEN, PYTHONCHATRU from .me import get_me from .query_log import logging -from . import trolling + # https://core.telegram.org/bots/api Telegram Bot API # https://github.com/eternnoir/pyTelegramBotAPI/tree/master/examples @@ -226,6 +227,13 @@ def send_stats(message): parse_mode='HTML', disable_web_page_preview=True) +@bot.message_handler(commands=['reload']) +def send_stats(message): + reload_modules() + bot.send_message(message.chat.id, 'Reloaded successful', + parse_mode='HTML') + + @bot.message_handler(commands=['reset_stats']) def send_stats(message): report.reset_report_stats() diff --git a/app/report.py b/app/report.py index de2d11e..262c162 100644 --- a/app/report.py +++ b/app/report.py @@ -2,9 +2,9 @@ import shelve def create_report_text(): + top_users = '' + flooders = [] with shelve.open('chat_stats') as s: - text = '' - flooders = [] for n in range(min(3, len(s['Messages']))): top_user = s['Messages'][sorted(s['Messages'], key=lambda a: s['Messages'][a]['Count'], reverse=True)[n]] if top_user['Count'] >= 10: @@ -13,20 +13,16 @@ def create_report_text(): for i, flooder in enumerate(flooders): user = flooder["User"] name = f"{user.first_name} {user.last_name}" if user.last_name else user.first_name - text += f'\n {i + 1}. {name} ({flooder["Count"]})' - report = f"""Доброе утро, Мир! -За прошлые сутки + top_users += f'\n {i + 1}. {name} ({flooder["Count"]})' + report = f"""Hello, World! 🌍 -Заблокировано +Заблокировано ⛔ ├ Пользователей: {s['Banned']} └ Сообщений: {s['Deleted']} """ - if flooders: - report += """ -Главные флудеры 🏆{text}""" - else: - report += """ -До звания флудера никто не дотянул :-(""" + if flooders: + report += f""" +Топ 🏆{top_users}""" return report