Catching AttributeError in autofill functions when invalid variables are sent.

This commit is contained in:
alwayscompiling
2022-11-24 17:45:40 -05:00
parent 9ebbca2557
commit 1e336e290d
+33 -25
View File
@@ -50,18 +50,22 @@ def autofill_category_users(guild_id: int, table_name: str, category_name: str,
list[str]: List of users that start with user_begin.
"""
users_list: "list[str]" = (
highscores_data.get_guild(guild_id).get_table(table_name).get_category(category_name).get_users()
)
try:
users_list: "list[str]" = (
highscores_data.get_guild(guild_id).get_table(table_name).get_category(category_name).get_users()
)
# if string empty, return all users
if not user_begin:
return users_list
# if string empty, return all users
if not user_begin:
return users_list
# else find all users that start with user_begin
users = [user for user in users_list if user.lower().startswith(user_begin.lower())]
# else find all users that start with user_begin
users = [user for user in users_list if user.lower().startswith(user_begin.lower())]
return users
return users
except AttributeError:
return []
def autofill_tables(guild_id: int, table_begin: str) -> "list[str]":
@@ -102,27 +106,31 @@ def autofill_users(guild_id: int, table_name: str, category_name: str, user_begi
list[str]: List of users that start with user_begin.
"""
# If no category name, get all users in table.
if category_name is None:
user_set: set = set()
try:
# If no category name, get all users in table.
if category_name is None:
user_set: set = set()
for category in highscores_data.get_guild(guild_id).get_table(table_name).get_categories().values():
user_set = user_set | set(category.get_users())
for category in highscores_data.get_guild(guild_id).get_table(table_name).get_categories().values():
user_set = user_set | set(category.get_users())
users_list = list(user_set)
else:
users_list: "list[str]" = (
highscores_data.get_guild(guild_id).get_table(table_name).get_category(category_name).get_users()
)
users_list = list(user_set)
else:
users_list: "list[str]" = (
highscores_data.get_guild(guild_id).get_table(table_name).get_category(category_name).get_users()
)
# if string empty, return all users
if not user_begin:
return users_list
# if string empty, return all users
if not user_begin:
return users_list
# else find all users that start with user_begin
users = [user for user in users_list if user.lower().startswith(user_begin.lower())]
# else find all users that start with user_begin
users = [user for user in users_list if user.lower().startswith(user_begin.lower())]
return users
return users
except AttributeError:
return []
def format_highscore_message(guild: Guild, table: Table) -> str: