/warnings can now show all warnings

This commit is contained in:
Profitroll 2023-04-02 21:31:45 +02:00
parent cb2f3358b2
commit 1f45398de5
2 changed files with 28 additions and 1 deletions

View File

@ -78,6 +78,8 @@
"warned_reason": "Попереджено **{0}** (`{1}`)\n\n**Причина:**\n{2}", "warned_reason": "Попереджено **{0}** (`{1}`)\n\n**Причина:**\n{2}",
"warnings_1": "Користувач **{0}** (`{1}`) має **{2}** попередження", "warnings_1": "Користувач **{0}** (`{1}`) має **{2}** попередження",
"warnings_2": "Користувач **{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_warnings": "Користувач **{0}** (`{1}`) не має попереджень",
"no_user_warnings": "Не знайдено користувачів за запитом **{0}**", "no_user_warnings": "Не знайдено користувачів за запитом **{0}**",
"syntax_warnings": "Неправильний синтаксис!\nТреба: `/warnings ID/NAME/USERNAME`", "syntax_warnings": "Неправильний синтаксис!\nТреба: `/warnings ID/NAME/USERNAME`",

View File

@ -15,7 +15,32 @@ from modules import custom_filters
& custom_filters.admin & custom_filters.admin
) )
async def cmd_warnings(app: Client, msg: Message): 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( await msg.reply_text(
locale("syntax_warnings", "message", locale=msg.from_user), locale("syntax_warnings", "message", locale=msg.from_user),
quote=should_quote(msg), quote=should_quote(msg),