From bf2fda9d949632a2840b10e39351ae33228fb8f5 Mon Sep 17 00:00:00 2001 From: Profitroll <47523801+profitrollgame@users.noreply.github.com> Date: Sun, 23 Oct 2022 11:56:28 +0200 Subject: [PATCH] Improved logging --- main.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/main.py b/main.py index 4a0834d..a4a8117 100644 --- a/main.py +++ b/main.py @@ -31,6 +31,7 @@ async def cmd_start(app, msg): configSet("telegram_phone", str(msg.from_user.phone_number), file=str(msg.from_user.id)) configSet("telegram_locale", str(msg.from_user.language_code), file=str(msg.from_user.id)) + logWrite(f"User {msg.from_user.id} started bot interaction") await msg.reply_text(locale("start", "message"), reply_markup=ReplyKeyboardMarkup(locale("welcome", "keyboard"), resize_keyboard=True)) # type: ignore # ============================================================================================================================== @@ -53,12 +54,14 @@ async def welcome_pass(app, msg, once_again: bool = True): if not once_again: await msg.reply_text(locale("privacy_notice", "message")) + logWrite(f"User {msg.from_user.id} confirmed starting the application") await msg.reply_text(locale("question1", "message"), reply_markup=ForceReply(placeholder=locale("question1", "force_reply"))) # type: ignore configSet("stage", 1, file=str(msg.from_user.id)) @app.on_message(~ filters.scheduled & filters.private & (filters.regex(locale("welcome", "keyboard")[1][0]))) async def welcome_reject(app, msg): + logWrite(f"User {msg.from_user.id} refused to start the application") await msg.reply_text(locale("goodbye", "message"), reply_markup=ReplyKeyboardMarkup(locale("return", "keyboard"), resize_keyboard=True)) # type: ignore # ============================================================================================================================== @@ -113,6 +116,8 @@ async def confirm_yes(app, msg): ) ) + logWrite(f"User {msg.from_user.id} sent his application and it will now be reviewed") + configSet("sent", True, file=str(msg.from_user.id)) configSet("confirmed", True, file=str(msg.from_user.id)) @@ -128,6 +133,7 @@ async def confirm_no(app, msg): configSet("telegram_phone", str(msg.from_user.phone_number), file=str(msg.from_user.id)) configSet("telegram_locale", str(msg.from_user.language_code), file=str(msg.from_user.id)) await welcome_pass(app, msg, once_again=True) + logWrite(f"User {msg.from_user.id} restarted the application due to typo in it") # ============================================================================================================================== @@ -138,6 +144,7 @@ async def callback_query_accept(app, clb): fullclb = clb.data.split("_") await app.send_message(configGet("admin_group"), locale("approved_by", "message").format(clb.from_user.first_name, fullclb[2]), disable_notification=True) # type: ignore + logWrite(f"User {fullclb[2]} got approved by {clb.from_user.id}") link = await app.create_chat_invite_link(configGet("destination_group"), name=f"Invite for {fullclb[2]}", member_limit=1, expire_date=datetime.now()+timedelta(days=1)) @@ -150,6 +157,8 @@ async def callback_query_accept(app, clb): configSet("approved", True, file=fullclb[2]) configSet("link", link.invite_link, file=fullclb[2]) + logWrite(f"User {fullclb[2]} got an invite link {link.invite_link}") + application = jsonLoad(f"{configGet('data', 'locations')}{sep}applications.json") application[fullclb[2]]["approved"] = True application[fullclb[2]]["approved_by"] = clb.from_user.id @@ -168,6 +177,7 @@ async def callback_query_refuse_aggressive(app, clb): await app.send_message(configGet("admin_group"), locale("refused_by_agr", "message").format(clb.from_user.first_name, fullclb[3]), disable_notification=True) # type: ignore await app.send_message(int(fullclb[3]), locale("refused", "message")) + logWrite(f"User {fullclb[3]} got refused by {clb.from_user.id} due to being aggressive") configSet("refused", True, file=fullclb[3]) @@ -190,6 +200,7 @@ async def callback_query_refuse_russian(app, clb): await app.send_message(configGet("admin_group"), locale("refused_by_rus", "message").format(clb.from_user.first_name, fullclb[3]), disable_notification=True) # type: ignore await app.send_message(int(fullclb[3]), locale("refused", "message")) await app.send_message(int(fullclb[3]), locale("refused_russian", "message")) + logWrite(f"User {fullclb[3]} got refused by {clb.from_user.id} due to being russian") configSet("refused", True, file=fullclb[3]) @@ -211,6 +222,7 @@ async def callback_query_refuse(app, clb): await app.send_message(configGet("admin_group"), locale("refused_by", "message").format(clb.from_user.first_name, fullclb[2]), disable_notification=True) # type: ignore await app.send_message(int(fullclb[2]), locale("refused", "message")) + logWrite(f"User {fullclb[2]} got refused by {clb.from_user.id}") configSet("refused", True, file=fullclb[2]) @@ -249,10 +261,13 @@ async def get_contact(app, msg): application_status = locale("application_status_on_hold", "message") else: application_status = locale("application_status_not_send", "message") + logWrite(f"User {msg.from_user.id} requested application of {msg.contact.user_id}") await msg.reply_text(locale("contact", "message").format(str(msg.contact.user_id), "\n".join(application_content), application_status)) # type: ignore except FileNotFoundError: + logWrite(f"User {msg.from_user.id} requested application of {msg.contact.user_id} but user does not exists") await msg.reply_text(locale("contact_invalid", "message")) else: + logWrite(f"User {msg.from_user.id} requested application of someone but user is not telegram user") await msg.reply_text(locale("contact_not_member", "message")) # ============================================================================================================================== @@ -265,22 +280,28 @@ async def any_stage(app, msg): if user_stage == 1: await msg.reply_text(locale(f"question{user_stage+1}", "message"), reply_markup=ForceReply(placeholder=str(locale(f"question{user_stage+1}", "force_reply")))) + logWrite(f"User {msg.from_user.id} completed stage {user_stage} of application") configSet(str(user_stage), str(msg.text), "application", file=str(msg.from_user.id)) configSet("stage", user_stage+1, file=str(msg.from_user.id)) elif user_stage == 2: try: configSet(str(user_stage), int(msg.text), "application", file=str(msg.from_user.id)) if (int(msg.text) in [-1, 0, 128, 256, 512, 1024, 2048]) or (int(msg.text) >= 100): + logWrite(f"User {msg.from_user.id} failed stage {user_stage} due to joking") await msg.reply_text(locale("question2_joke", "message"), reply_markup=ForceReply(placeholder=str(locale("question2", "force_reply")))) elif int(msg.text) < configGet("age_allowed"): + logWrite(f"User {msg.from_user.id} failed stage {user_stage} due to being underage") await msg.reply_text(locale("question2_underage", "message").format(str(configGet("age_allowed"))), reply_markup=ForceReply(placeholder=str(locale("question2", "force_reply")))) # type: ignore else: + logWrite(f"User {msg.from_user.id} completed stage {user_stage} of application") await msg.reply_text(locale(f"question{user_stage+1}", "message"), reply_markup=ForceReply(placeholder=str(locale(f"question{user_stage+1}", "force_reply")))) configSet("stage", user_stage+1, file=str(msg.from_user.id)) except ValueError: + logWrite(f"User {msg.from_user.id} failed stage {user_stage} due to sending not int") await msg.reply_text(locale(f"question2_invalid", "message"), reply_markup=ForceReply(placeholder=str(locale(f"question{user_stage}", "force_reply")))) else: if user_stage <= 9: + logWrite(f"User {msg.from_user.id} completed stage {user_stage} of application") await msg.reply_text(locale(f"question{user_stage+1}", "message"), reply_markup=ForceReply(placeholder=str(locale(f"question{user_stage+1}", "force_reply")))) configSet(str(user_stage), str(msg.text), "application", file=str(msg.from_user.id)) configSet("stage", user_stage+1, file=str(msg.from_user.id))