catched some errors

This commit is contained in:
m 2021-01-21 16:20:39 +01:00
parent 10e27e4cd1
commit 0935f6a7f1
2 changed files with 23 additions and 8 deletions

View file

@ -17,12 +17,21 @@ def keep_user_register(update: Update, context: CallbackContext) -> None:
message = update.message message = update.message
users = set() users = set()
# get user from every possible source # get user from every possible source
if hasattr(update, "effective_user"): users |= set(update.effective_user) try:
if hasattr(message, "new_chat_members"): users |= set(*message.new_chat_members) users |= {update.effective_user}
if hasattr(message, "left_chat_member"): users |= set(message.left_chat_member) except Exception as e: pass
if hasattr(message, "forward_from"): users |= set(message.forward_from) try:
if hasattr(update, "edited_message"): users |= {*message.new_chat_members}
if hasattr(update.edited_message, "from_user"): users |= set(message.edited_message.from_user) 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: try:
record = GET_ADMIN_FROM_API_REQUEST_COUNTDOWN record = GET_ADMIN_FROM_API_REQUEST_COUNTDOWN
get_administrators_frequency = 10 # request this data with low frequency 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) 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 registered_users |= users

View file

@ -82,7 +82,10 @@ def get_users(mentions: PARSED_MESSAGEENTITIES, context, allow_bots=False) -> se
user = mention.user user = mention.user
else: else:
username = username.lstrip("@") 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): if user and (allow_bots or not user.is_bot):
users.add(user) users.add(user)