This commit closes #36

This commit is contained in:
Profitroll 2023-04-03 16:03:33 +02:00
parent bd040af0cc
commit f66f8421c3
3 changed files with 37 additions and 4 deletions

View File

@ -76,8 +76,8 @@
"application_invalid_syntax": "Неправильний синтаксис!\nТреба: `/application ID/NAME/USERNAME`", "application_invalid_syntax": "Неправильний синтаксис!\nТреба: `/application ID/NAME/USERNAME`",
"warned": "Попереджено **{0}** (`{1}`) про порушення правил", "warned": "Попереджено **{0}** (`{1}`) про порушення правил",
"warned_reason": "Попереджено **{0}** (`{1}`)\n\n**Причина:**\n{2}", "warned_reason": "Попереджено **{0}** (`{1}`)\n\n**Причина:**\n{2}",
"warnings_1": "Користувач **{0}** (`{1}`) має **{2}** попередження\n\nОбрати та зняти попередження:\n`/warnings {3} revoke`", "warnings_1": "Користувач **{0}** (`{1}`) має **{2}** попередження\n\n{3}\n\nОбрати та зняти попередження:\n`/warnings {4} revoke`",
"warnings_2": "Користувач **{0}** (`{1}`) має **{2}** попереджень\n\nОбрати та зняти попередження:\n`/warnings {3} revoke`", "warnings_2": "Користувач **{0}** (`{1}`) має **{2}** попереджень\n\n{3}\n\nОбрати та зняти попередження:\n`/warnings {4} revoke`",
"warnings_all": "**Список попереджень**\n\n{0}\n\nДля перегляду попереджень окремо взятого користувача слід використовувати `/warnings ID/NAME/USERNAME`", "warnings_all": "**Список попереджень**\n\n{0}\n\nДля перегляду попереджень окремо взятого користувача слід використовувати `/warnings ID/NAME/USERNAME`",
"warnings_entry": "• {0} (`{1}`)\n Попереджень: {2}", "warnings_entry": "• {0} (`{1}`)\n Попереджень: {2}",
"warnings_empty": "Щось тут порожньо...\nЗ іншого боку, це добре!", "warnings_empty": "Щось тут порожньо...\nЗ іншого боку, це добре!",

View File

@ -3,6 +3,7 @@ from app import app
from pyrogram import filters from pyrogram import filters
from pyrogram.types import CallbackQuery from pyrogram.types import CallbackQuery
from pyrogram.client import Client from pyrogram.client import Client
from pykeyboard import InlineKeyboard, InlineButton
from modules.utils import configGet, locale from modules.utils import configGet, locale
from modules.database import col_warnings from modules.database import col_warnings
from bson import ObjectId from bson import ObjectId
@ -31,3 +32,28 @@ async def callback_query_warning_revoke(app: Client, clb: CallbackQuery):
warning["user"], warning["date"].strftime("%d.%m.%Y") warning["user"], warning["date"].strftime("%d.%m.%Y")
), ),
) )
target_id = warning["user"]
if col_warnings.count_documents({"user": target_id, "active": True}) == 0:
await clb.edit_message_text(
locale("no_warnings", "message", locale=clb.from_user).format(
target_id, target_id
)
)
return
keyboard = InlineKeyboard()
buttons = []
warnings = []
for index, warning in enumerate(
list(col_warnings.find({"user": target_id, "active": True}))
):
warnings.append(
f'{index+1}. {warning["date"].strftime("%d.%m.%Y, %H:%M")}\n Адмін: {warning["admin"]}\n Причина: {warning["reason"]}'
)
buttons.append(InlineButton(str(index + 1), f'w_rev_{str(warning["_id"])}'))
keyboard.add(*buttons)
await clb.edit_message_text(
locale("warnings_revoke", "message", locale=clb.from_user).format(
target_id, "\n".join(warnings)
),
)
await clb.edit_message_reply_markup(reply_markup=keyboard)

View File

@ -123,17 +123,24 @@ async def cmd_warnings(app: Client, msg: Message):
quote=should_quote(msg), quote=should_quote(msg),
) )
else: else:
warnings = []
for index, warning in enumerate(
list(col_warnings.find({"user": target_id, "active": True}))
):
warnings.append(
f'{index+1}. {warning["date"].strftime("%d.%m.%Y, %H:%M")}\n Адмін: {warning["admin"]}\n Причина: {warning["reason"]}'
)
if warns <= 5: if warns <= 5:
await msg.reply_text( await msg.reply_text(
locale("warnings_1", "message", locale=msg.from_user).format( locale("warnings_1", "message", locale=msg.from_user).format(
target_name, target_id, warns, target_id target_name, target_id, warns, "\n".join(warnings), target_id
), ),
quote=should_quote(msg), quote=should_quote(msg),
) )
else: else:
await msg.reply_text( await msg.reply_text(
locale("warnings_2", "message", locale=msg.from_user).format( locale("warnings_2", "message", locale=msg.from_user).format(
target_name, target_id, warns, target_id target_name, target_id, warns, "\n".join(warnings), target_id
), ),
quote=should_quote(msg), quote=should_quote(msg),
) )