From 0935f6a7f1fc56917dfe5cab763f1fe18e60ce77 Mon Sep 17 00:00:00 2001 From: m Date: Thu, 21 Jan 2021 16:20:39 +0100 Subject: [PATCH] catched some errors --- app/event_handlers.py | 26 +++++++++++++++++++------- app/helpers.py | 5 ++++- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/app/event_handlers.py b/app/event_handlers.py index 366310b..4dd41c7 100644 --- a/app/event_handlers.py +++ b/app/event_handlers.py @@ -17,12 +17,21 @@ def keep_user_register(update: Update, context: CallbackContext) -> None: message = update.message users = set() # get user from every possible source - if hasattr(update, "effective_user"): users |= set(update.effective_user) - if hasattr(message, "new_chat_members"): users |= set(*message.new_chat_members) - if hasattr(message, "left_chat_member"): users |= set(message.left_chat_member) - if hasattr(message, "forward_from"): users |= set(message.forward_from) - if hasattr(update, "edited_message"): - if hasattr(update.edited_message, "from_user"): users |= set(message.edited_message.from_user) + try: + users |= {update.effective_user} + except Exception as e: pass + try: + users |= {*message.new_chat_members} + except Exception as e: pass + try: + users |= {message.left_chat_member} + except Exception as e: pass + try: + users |= {message.forward_from} + except Exception as e: pass + try: + users |= {message.edited_message.from_user} + except Exception as e: pass try: record = GET_ADMIN_FROM_API_REQUEST_COUNTDOWN get_administrators_frequency = 10 # request this data with low frequency @@ -38,5 +47,8 @@ def keep_user_register(update: Update, context: CallbackContext) -> None: users.discard(None) - registered_users: set[User] = context.bot_data[USERS] + try: + registered_users: set[User] = context.bot_data[USERS] + except KeyError: # first use + context.bot_data[USERS] = set() registered_users |= users diff --git a/app/helpers.py b/app/helpers.py index 5b57c9d..079076e 100644 --- a/app/helpers.py +++ b/app/helpers.py @@ -82,7 +82,10 @@ def get_users(mentions: PARSED_MESSAGEENTITIES, context, allow_bots=False) -> se user = mention.user else: username = username.lstrip("@") - user = list(filter(lambda user: user.username == username, registered_users))[0] + try: + user = list(filter(lambda user: user.username == username, registered_users))[0] + except IndexError: # do not add not registered users + continue if user and (allow_bots or not user.is_bot): users.add(user)