diff options
author | 2020-08-03 17:40:09 +0200 | |
---|---|---|
committer | 2020-08-03 17:40:09 +0200 | |
commit | e73f77a34c3b2f0ec226acbdfc490f93896784d0 (patch) | |
tree | 338e33e61236788305f24a63246d04878b43449d | |
parent | Add some feedback to the _sync_data helper. (diff) |
Add support for plural FilterList types.
This will allow mods to use '!whitelist get guild_invites'
in addition to '!whitelist get guild_invite'
This is just a naive implementation which works if the plural
form is a simple s at the end of the word. It's implemented
into the converter.
-rw-r--r-- | bot/converters.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/bot/converters.py b/bot/converters.py index c9f525dd1..1358cbf1e 100644 --- a/bot/converters.py +++ b/bot/converters.py @@ -101,11 +101,23 @@ class ValidFilterListType(Converter): list_type = list_type.upper() if list_type not in valid_types: - valid_types_list = '\n'.join([f"• {type_.lower()}" for type_ in valid_types]) - raise BadArgument( - f"You have provided an invalid list type!\n\n" - f"Please provide one of the following: \n{valid_types_list}" - ) + + # Maybe the user is using the plural form of this type, + # e.g. "guild_invites" instead of "guild_invite". + # + # This code will support the simple plural form (a single 's' at the end), + # which works for all current list types, but if a list type is added in the future + # which has an irregular plural form (like 'ies'), this code will need to be + # refactored to support this. + if list_type.endswith("S") and list_type[:-1] in valid_types: + list_type = list_type[:-1] + + else: + valid_types_list = '\n'.join([f"• {type_.lower()}" for type_ in valid_types]) + raise BadArgument( + f"You have provided an invalid list type!\n\n" + f"Please provide one of the following: \n{valid_types_list}" + ) return list_type |