from os import sep, makedirs, remove from uuid import uuid1 from app import app from pyrogram import filters from pyrogram.types import Message from pyrogram.client import Client from pyrogram.enums.chat_action import ChatAction from modules.logging import logWrite from modules.utils import should_quote, jsonSave from modules.database import col_applications from modules import custom_filters # Applications command ========================================================================================================= @app.on_message(~ filters.scheduled & custom_filters.admin & filters.command(["applications"], prefixes=["/"])) async def cmd_applications(app: Client, msg: Message): logWrite(f"Admin {msg.from_user.id} requested export of a database") await app.send_chat_action(msg.chat.id, ChatAction.UPLOAD_DOCUMENT) filename = uuid1() output = [] for entry in col_applications.find(): del entry["_id"] entry["date"] = entry["date"].strftime("%d.%m.%Y, %H:%M") entry["application"]["2"] = entry["application"]["2"].strftime("%d.%m.%Y, %H:%M") output.append(entry) makedirs("tmp", exist_ok=True) jsonSave(output, f"tmp{sep}{filename}.json") await msg.reply_document(document=f"tmp{sep}{filename}.json", file_name="applications", quote=should_quote(msg)) remove(f"tmp{sep}{filename}.json") # ==============================================================================================================================