Merge branch '44-limit-autofill-choices'
build

This commit is contained in:
2023-03-29 19:19:20 -04:00
+14 -14
View File
@@ -40,18 +40,18 @@ def autofill_categories(guild_id: int, group_id: int, category_begin: str) -> "d
) )
cat_group_alias = aliased(CategoryGroup, subq) cat_group_alias = aliased(CategoryGroup, subq)
stmt = select(Category).where(Category.GroupId == cat_group_alias.GroupId) stmt = select(Category).where(Category.GroupId == cat_group_alias.GroupId)
categories_dict: dict = {cat.CategoryName: str(cat.CategoryId) for cat in session.scalars(stmt)} categories_dict: "dict[str, str]" = {cat.CategoryName: str(cat.CategoryId) for cat in session.scalars(stmt)}
# if string empty, return all category names # if string empty, return all category names
if not category_begin: if not category_begin:
return categories_dict return dict(list(category_begin.items())[:25])
# else find all categories that start with category_begin # else find all categories that start with category_begin
# TODO is it better to have sql handle the starts with or python? # TODO is it better to have sql handle the starts with or python?
categories: dict = { categories: "dict[str, str]" = {
cat_name: cat_id for cat_name, cat_id in categories_dict.items() if category_begin.lower() in cat_name.lower() cat_name: cat_id for cat_name, cat_id in categories_dict.items() if category_begin.lower() in cat_name.lower()
} }
return categories return dict(list(categories.items())[:25])
def autofill_groups(guild_id: int, group_begin: str) -> "dict[str, str]": def autofill_groups(guild_id: int, group_begin: str) -> "dict[str, str]":
@@ -71,18 +71,18 @@ def autofill_groups(guild_id: int, group_begin: str) -> "dict[str, str]":
stmt = select(CategoryGroup).where(CategoryGroup.GuildId == guild_id) stmt = select(CategoryGroup).where(CategoryGroup.GuildId == guild_id)
# dict has to have key values of same type for discord. # dict has to have key values of same type for discord.
group_dict: dict = {group.GroupName: str(group.GroupId) for group in session.scalars(stmt)} group_dict: "dict[str, str]" = {group.GroupName: str(group.GroupId) for group in session.scalars(stmt)}
# if string empty, return all group names # if string empty, return all group names
if not group_begin: if not group_begin:
return group_dict return dict(list(group_dict.items())[:25])
# else find all groups that start with group_begin # else find all groups that start with group_begin
groups: dict = { groups: "dict[str, str]" = {
group_name: group_id for group_name, group_id in group_dict.items() if group_begin.lower() in group_name.lower() group_name: group_id for group_name, group_id in group_dict.items() if group_begin.lower() in group_name.lower()
} }
return groups return dict(list(groups.items())[:25])
def autofill_users_in_group_category(guild_id: int, group_id: int, category_id: int, user_begin: str) -> "list[str]": def autofill_users_in_group_category(guild_id: int, group_id: int, category_id: int, user_begin: str) -> "list[str]":
@@ -130,12 +130,12 @@ def autofill_users_in_group_category(guild_id: int, group_id: int, category_id:
# if string empty, return all users # if string empty, return all users
if not user_begin: if not user_begin:
return users_list return users_list[:25]
# else find all users that start with user_begin # else find all users that start with user_begin
users = [user for user in users_list if user_begin.lower() in user.lower()] users: "list[str]" = [user for user in users_list if user_begin.lower() in user.lower()]
return users return users[:25]
def autofill_users_in_guild(guild_id: int, user_begin: str) -> "list[str]": def autofill_users_in_guild(guild_id: int, user_begin: str) -> "list[str]":
@@ -158,12 +158,12 @@ def autofill_users_in_guild(guild_id: int, user_begin: str) -> "list[str]":
# if string empty, return all users # if string empty, return all users
if not user_begin: if not user_begin:
return users_list return users_list[:25]
# else find all users that start with user_begin # else find all users that start with user_begin
users = [user for user in users_list if user_begin.lower() in user.lower()] users: "list[str]" = [user for user in users_list if user_begin.lower() in user.lower()]
return users return users[:25]
def format_highscore_message(session: Session, group: CategoryGroup) -> str: def format_highscore_message(session: Session, group: CategoryGroup) -> str: