Skip to content

Commit 5e6f437

Browse files
committed
fix: handle different telegram update types and missing user/chat info in logs
1 parent 08885f2 commit 5e6f437

1 file changed

Lines changed: 34 additions & 3 deletions

File tree

main.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,46 @@ async def error_handler(update, context):
2929
async def log_update(update, context):
3030
"""Log every update received by the bot."""
3131
logger = logging.getLogger("DCUBABOT")
32+
3233
user = update.effective_user
3334
chat = update.effective_chat
3435

35-
log_message = f"Update received. User: {user.id} ({user.username}) in chat: {chat.id} ({chat.title})."
36+
user_info = f"{user.id} ({user.username})" if user else None
37+
chat_info = f"{chat.id} ({chat.title})" if chat else None
38+
39+
log_parts = ["Update received"]
40+
41+
if user_info:
42+
log_parts.append(f"User: {user_info}")
43+
if chat_info:
44+
log_parts.append(f"Chat: {chat_info}")
45+
46+
if update.channel_post:
47+
log_parts.append("Type: Channel Post")
48+
if update.channel_post.text:
49+
log_parts.append(f"Text: {update.channel_post.text}")
50+
elif update.edited_channel_post:
51+
log_parts.append("Type: Edited Channel Post")
52+
elif update.poll:
53+
log_parts.append(f"Type: Poll Update (id: {update.poll.id})")
54+
elif update.poll_answer:
55+
log_parts.append(f"Type: Poll Answer (poll_id: {update.poll_answer.poll_id})")
56+
elif update.my_chat_member:
57+
log_parts.append("Type: Bot Chat Member Status Update")
58+
elif update.chat_member:
59+
log_parts.append("Type: Chat Member Update")
60+
elif update.inline_query:
61+
log_parts.append(f"Type: Inline Query (query: {update.inline_query.query})")
62+
3663
if update.message and update.message.text:
37-
log_message += f" Message: {update.message.text}"
64+
log_parts.append(f"Message: {update.message.text}")
3865
elif update.callback_query:
39-
log_message += f" Callback Query: {update.callback_query.data}"
66+
log_parts.append(f"Callback Query: {update.callback_query.data}")
4067

68+
if not user_info and not chat_info and len(log_parts) == 1:
69+
log_parts.append("Type: Unknown/System Update")
70+
71+
log_message = " | ".join(log_parts)
4172
logger.info(log_message)
4273

4374

0 commit comments

Comments
 (0)