diff --git a/locale/uk.json b/locale/uk.json index 9bdfcb5..50bb530 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -78,6 +78,8 @@ "warned_reason": "Попереджено **{0}** (`{1}`)\n\n**Причина:**\n{2}", "warnings_1": "Користувач **{0}** (`{1}`) має **{2}** попередження", "warnings_2": "Користувач **{0}** (`{1}`) має **{2}** попереджень", + "warnings_all": "**Список попереджень**\n\n{0}\n\nДля перегляду попереджень окремо взятого користувача слід використовувати `/warnings ID/NAME/USERNAME`", + "warnings_entry": "• {0} (`{1}`)\n Попереджень: {2}", "no_warnings": "Користувач **{0}** (`{1}`) не має попереджень", "no_user_warnings": "Не знайдено користувачів за запитом **{0}**", "syntax_warnings": "Неправильний синтаксис!\nТреба: `/warnings ID/NAME/USERNAME`", diff --git a/modules/commands/warnings.py b/modules/commands/warnings.py index 396e914..f712ca6 100644 --- a/modules/commands/warnings.py +++ b/modules/commands/warnings.py @@ -15,7 +15,32 @@ from modules import custom_filters & custom_filters.admin ) async def cmd_warnings(app: Client, msg: Message): - if len(msg.command) <= 1: + if len(msg.command) == 1: + warnings = {} + warnings_output = [] + for warning in col_warnings.find({"active": True}): + if str(warning["user"]) not in warnings: + warnings[str(warning["user"])] = { + "name": (col_users.find_one({"user": warning["user"]}))["tg_name"], + "warns": 1, + } + else: + warnings[str(warning["user"])]["warns"] += 1 + for warning in warnings: + warnings_output.append( + locale("warnings_entry", "message", locale=msg.from_user).format( + warnings[warning]["name"], warning, warnings[warning]["warns"] + ), + ) + await msg.reply_text( + locale("warnings_all", "message", locale=msg.from_user).format( + "\n".join(warnings_output) + ), + quote=should_quote(msg), + ) + return + + if len(msg.command) > 2: await msg.reply_text( locale("syntax_warnings", "message", locale=msg.from_user), quote=should_quote(msg),