From f6fda1b355bef0d0f2fc364e786bd0055f9f60db Mon Sep 17 00:00:00 2001 From: Rykov7 Date: Thu, 13 Apr 2023 13:25:59 +0300 Subject: [PATCH] update logging --- app/bot.py | 132 +++++++++++++++++++++++++++++++++------- app/commands/service.py | 2 - app/config.py | 2 +- app/filters.py | 10 ++- 4 files changed, 118 insertions(+), 28 deletions(-) diff --git a/app/bot.py b/app/bot.py index dc89237..740031c 100644 --- a/app/bot.py +++ b/app/bot.py @@ -15,9 +15,6 @@ from .config import * @bot.message_handler(func=in_spam_list, chat_types=["supergroup", "group"]) def moderate_messages(message: types.Message): """Ban user and delete their message.""" - logging.info( - f"[BAN] [{message.from_user.id}] {message.from_user.username}: {message.text}" - ) bot.delete_message(message.chat.id, message.id) bot.ban_chat_member(message.chat.id, message.from_user.id) with shelve.open(f"{DATA}{message.chat.id}") as s: @@ -27,9 +24,6 @@ def moderate_messages(message: types.Message): @bot.message_handler(func=in_caption_spam_list, content_types=["video"], chat_types=["supergroup", "group"]) def catch_videos(message: types.Message): """Catch offensive videos""" - logging.info( - f"[BAN] {message.from_user.id} {message.from_user.first_name} - {message.video.file_name}" - ) bot.delete_message(message.chat.id, message.id) bot.ban_chat_member(message.chat.id, message.from_user.id) with shelve.open(f"{DATA}{message.chat.id}") as s: @@ -51,7 +45,7 @@ def delete_message(message: types.Message): @bot.message_handler(commands=["start", "links", "ссылки"]) def start(message: types.Message): """What to begin with.""" - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info(LOG_TEXT % (message.chat.title, message.from_user.id, message.from_user.first_name, message.text)) markup = types.InlineKeyboardMarkup([[RULES], [FAQ], [LIB]], 1) send_or_reply(message, "Начни с прочтения", reply_markup=markup) @@ -60,7 +54,7 @@ def start(message: types.Message): def send_rules(message: types.Message): markup = types.InlineKeyboardMarkup([[RULES]], 1) args = message.text.split() - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info(LOG_TEXT % (message.chat.title, message.from_user.id, message.from_user.first_name, message.text)) if len(args) > 1 and args[-1].isdigit() and 0 < int(args[-1]): send_or_reply( message, @@ -73,21 +67,45 @@ def send_rules(message: types.Message): @bot.message_handler(commands=["faq", "чзв"]) def send_faq(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) markup = types.InlineKeyboardMarkup([[FAQ]], 1) send_or_reply(message, "...", reply_markup=markup) @bot.message_handler(commands=["lib", "library", "books", "книги", "библиотека"]) def send_lib(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) markup = types.InlineKeyboardMarkup([[LIB]], 1) send_or_reply(message, "...", reply_markup=markup) @bot.message_handler(commands=["lutz", "лутц"]) def send_lutz(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) bot.send_document( message.chat.id, document="BQACAgQAAxkBAAPBYsWJG9Ml0fPrnbU9UyzTQiQSuHkAAjkDAAIstCxSkuRbXAlcqeQpBA", @@ -97,7 +115,15 @@ def send_lutz(message: types.Message): @bot.message_handler(commands=["bdmtss", "бдмтсс"]) def send_bdmtss_audio(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) bot.send_voice( message.chat.id, "AwACAgIAAxkBAAIJrWOg2WUvLwrf7ahyJxQHB8_nqllwAAL5JQAC2_IJSbhfQIO5YnVmLAQ", @@ -106,7 +132,15 @@ def send_bdmtss_audio(message: types.Message): @bot.message_handler(commands=["tr", "тр"]) def translate_layout(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) if message.reply_to_message and message.reply_to_message.text: if message.reply_to_message.text[0] in RUS: bot.send_message( @@ -120,13 +154,29 @@ def translate_layout(message: types.Message): @bot.message_handler(commands=["quote", "цитата"]) def stan_speak(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) bot.send_message(message.chat.id, stan.speak(0, message.chat.id)) @bot.message_handler(commands=["tsya", "тся", "ться"]) def send_tsya(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) markup = types.InlineKeyboardMarkup() markup.add( types.InlineKeyboardButton("🧑🏼‍🎓 Читать правило", url="https://tsya.ru/"), @@ -137,7 +187,15 @@ def send_tsya(message: types.Message): @bot.message_handler(commands=["nometa", "номета"]) def send_nometa(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) markup = types.InlineKeyboardMarkup() markup.add( types.InlineKeyboardButton("❓ nometa.xyz", url="https://nometa.xyz/ru.html"), @@ -157,7 +215,15 @@ def send_nometa(message: types.Message): @bot.message_handler(commands=["neprivet", "непривет"]) def send_neprivet(message: types.Message): - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) markup = types.InlineKeyboardMarkup() markup.add( types.InlineKeyboardButton("👋 Непривет", url="https://neprivet.com/"), @@ -198,7 +264,15 @@ GUI-фреймворками. Существует много ресурсов @bot.message_handler(commands=["g", "г"]) def google_it(message: types.Message): """Google it!""" - logging.info(f"[{message.chat.id}] [{message.from_user.id}] {message.from_user.first_name}: {message.text}") + logging.info( + LOG_TEXT + % ( + message.chat.title, + message.from_user.id, + message.from_user.first_name, + message.text, + ) + ) query = f"{detect_args(message)}" get_query = "https://www.google.com/search?q=" + represent_as_get(message) @@ -216,8 +290,14 @@ def delete_user(message: types.Message): bot.delete_message(message.chat.id, message.id) bot.delete_message(message.chat.id, message.reply_to_message.id) logging.info( - f"[DELETE (M)] {message.reply_to_message.from_user.id} {message.reply_to_message.from_user.first_name} - \ - {message.reply_to_message.text}" + "!DEL! (M)" + + LOG_TEXT + % ( + message.chat.title, + message.reply_to_message.from_user.id, + message.from_user.first_name, + message.reply_to_message.text, + ) ) @@ -228,8 +308,14 @@ def ban_user(message: types.Message): bot.delete_message(message.chat.id, message.reply_to_message.id) bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id) logging.info( - f"[BAN (M)] {message.reply_to_message.from_user.id} {message.reply_to_message.from_user.first_name} - \ - {message.reply_to_message.text}" + f"!BAN! (M)" + + LOG_TEXT + % ( + message.chat.title, + message.reply_to_message.from_user.id, + message.from_user.first_name, + message.reply_to_message.text, + ) ) @@ -238,7 +324,7 @@ def unban_user(message: types.Message): if message.text.split()[-1].isdigit(): user_id = int(message.text.split()[-1]) bot.unban_chat_member(PYTHONCHATRU, user_id) - logging.info(f"[UNBAN (M)] {user_id}") + logging.info(f"!UNBAN (M)! {user_id}") """ [ INLINE ] """ diff --git a/app/commands/service.py b/app/commands/service.py index 7b6551e..62dab94 100644 --- a/app/commands/service.py +++ b/app/commands/service.py @@ -81,7 +81,6 @@ def enable_stan(message: types.Message): f"[{message.chat.title}] [{message.from_user.id}] {message.from_user.username}: {message.text}" ) if not session.query(Chat.id).filter(Chat.chat_id == message.chat.id).first(): - logging.info("[TRUE] chat.id == message.chat.id") session.add( Chat( chat_id=message.chat.id, @@ -109,7 +108,6 @@ def disable_stan(message: types.Message): f"[{message.chat.title}] [{message.from_user.id}] {message.from_user.username}: {message.text}" ) if session.query(Chat.id).filter(Chat.chat_id == message.chat.id).first(): - logging.info("[TRUE] chat.id == message.chat.id") chat = session.query(Chat).filter_by(chat_id=message.chat.id).first() session.delete(chat) session.commit() diff --git a/app/config.py b/app/config.py index 30da87e..d47088f 100644 --- a/app/config.py +++ b/app/config.py @@ -28,7 +28,7 @@ bot = TeleBot( allow_sending_without_reply=True, colorful_logs=True, ) - +LOG_TEXT = "[%s] %s: %s" app = Flask(__name__) DATA = "data/chat" diff --git a/app/filters.py b/app/filters.py index 78f82f8..fb9885a 100644 --- a/app/filters.py +++ b/app/filters.py @@ -9,13 +9,19 @@ def in_spam_list(message: types.Message) -> bool: if message.from_user.id not in WHITEIDS and antispam_is_enabled: for url in SPAM: if url in message.text.casefold(): + logging.info( + "!BAN!" + LOG_TEXT % ( + message.chat.title, message.from_user.id, message.from_user.first_name, message.text)) + return True -def in_caption_spam_list(type_message: types.Message) -> bool: +def in_caption_spam_list(message: types.Message) -> bool: """Check for mentioning unwanted words in caption.""" for phrase in BAN_WORDS: - if type_message.caption and phrase in type_message.caption: + if message.caption and phrase in message.caption: + logging.info("!BAN!" + LOG_TEXT % ( + message.chat.title, message.from_user.id, message.from_user.first_name, message.video.file_name)) return True