Small rewrite to consolidate autofill_user function. Sort imports in message_management.py.

This commit is contained in:
alwayscompiling
2022-11-22 17:02:18 -05:00
parent a0c5527bf6
commit 03c7a9303a
2 changed files with 28 additions and 28 deletions
+19 -11
View File
@@ -3,11 +3,12 @@ Contains various utlity functions for highscores bot
"""
import nextcord
from highscores import highscores_data, highscores_message_map # pylint: disable=import-error
from classes.score import Score # pylint: disable=import-error
from classes.guild import Guild # pylint: disable=import-error
from classes.category import Category # pylint: disable=import-error
from classes.guild import Guild # pylint: disable=import-error
from classes.score import Score # pylint: disable=import-error
from classes.table import Table # pylint: disable=import-error
from highscores import highscores_data, highscores_message_map # pylint: disable=import-error
def autofill_categories(guild_id: int, table_name: str, category_begin: str) -> "list[str]":
@@ -86,26 +87,33 @@ def autofill_tables(guild_id: int, table_begin: str) -> "list[str]":
return tables
def autofill_table_users(guild_id: int, table_name: str, user_begin: str) -> "list[str]":
def autofill_users(guild_id: int, table_name: str, category_name: str, user_begin: str) -> "list[str]":
"""
Gathers all users in a table's categories and performs autofill function on it. This is an expensive
function.
Returns list of users that match user_begin. Either all users in table or just users in category if category is
None. Might be sexpensive due to unioning all users in table.
Args:
guild_id (int): Guild id corresponding to table and category.
table_name (str): Table to look in for categories.
table_name (str): Table to look in for category.
category_name (str): Category to look in for users. Can be None if not looking for category.
user_begin (str): Beginning of user name to search with. Can be empty.
Returns:
list[str]: List of users that start with user_begin.
"""
user_set: set
# If no category name, get all users in table.
if category_name is None:
user_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)
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: