From d93b0bc07d3ce52e297c071d1c8b93337c8a998f Mon Sep 17 00:00:00 2001 From: profitroll Date: Fri, 14 Apr 2023 13:24:20 +0200 Subject: [PATCH] Added event data export --- locale/uk.json | 2 +- modules/commands/export.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/locale/uk.json b/locale/uk.json index ba90baa..e49b96f 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -87,7 +87,7 @@ "no_warnings": "Користувач **{0}** (`{1}`) не має попереджень", "no_user_warnings": "Не знайдено користувачів за запитом **{0}**", "syntax_warnings": "Неправильний синтаксис!\nТреба: `/warnings ID/NAME/USERNAME`", - "syntax_export": "Неправильний синтаксис!\nТреба: `/export applications/warnings/sponsorships/bans`", + "syntax_export": "Неправильний синтаксис!\nТреба: `/export applications/warnings/sponsorships/bans/event`", "message_enter": "Надішліть повідомлення, яке треба переслати адмінам.\n\nЗверніть увагу, що повідомлення може містити лише одне медіа або файл.", "message_sent": "Повідомлення надіслано", "message_no_user": "⚠️ **Помилка надсилання**\nВказано невірний ID користувача, тому не вдалось надіслати йому повідомлення. Перевірте чи в якості ID надано те число, яке було показане в анкеті.", diff --git a/modules/commands/export.py b/modules/commands/export.py index 9037f2d..85b94cf 100644 --- a/modules/commands/export.py +++ b/modules/commands/export.py @@ -33,7 +33,7 @@ async def cmd_export(app: Client, msg: Message): selection = msg.command[1].lower() - if selection not in ["applications", "warnings", "sponsorships", "bans"]: + if selection not in ["applications", "warnings", "sponsorships", "bans", "event"]: await msg.reply_text( locale("syntax_export", "message", locale=msg.from_user), quote=should_quote(msg), @@ -145,6 +145,15 @@ async def cmd_export(app: Client, msg: Message): output_json.append(entry) output_csv.append(entry) + elif selection == "event": + header_csv = ["user", "stage", "date"] + + for entry in list(col_warnings.find()): + del entry["id"] + entry["date"] = entry["date"].isoformat() + output_json.append(entry) + output_csv.append(entry) + # Saving CSV async with aiofiles.open(temp_file + ".csv", mode="w", encoding="utf-8") as file: writer = AsyncDictWriter(file, header_csv, restval="NULL", quoting=QUOTE_ALL)