add admin reloader, refactor

This commit is contained in:
Rykov7
2022-11-28 09:51:50 +03:00
parent c2faaf2e52
commit 8f0a1f1ca7
4 changed files with 33 additions and 13 deletions
+1
View File
@@ -0,0 +1 @@
from . import trolling
+15
View File
@@ -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)
+9 -1
View File
@@ -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()
+8 -12
View File
@@ -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}. <a href="tg://user?id={user.id}">{name}</a> ({flooder["Count"]})'
report = f"""<code>Доброе утро, Мир!</code>
<b>За прошлые сутки</b>
top_users += f'\n {i + 1}. <a href="tg://user?id={user.id}">{name}</a> ({flooder["Count"]})'
report = f"""<code>Hello, World!</code> 🌍
<b>Заблокировано</b>
<b>Заблокировано</b> ⛔
├ <b>Пользователей: </b>{s['Banned']}
└ <b>Сообщений: </b>{s['Deleted']}
"""
if flooders:
report += """
<b>Главные флудеры</b> 🏆{text}"""
else:
report += """
До звания флудера никто не дотянул :-("""
if flooders:
report += f"""
<b>Топ</b> 🏆{top_users}"""
return report