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 @app.on_message( custom_filters.enabled_applications & ~filters.scheduled & filters.command(["applications"], prefixes=["/"]) & custom_filters.admin ) 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")