import asyncio from os import makedirs from pathlib import Path from time import time from libbot import json_write from pyrogram import filters from pyrogram.client import Client from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message from classes.pyroclient import PyroClient from modules.utils import USERS_WITH_CONTEXT @Client.on_message( ~filters.scheduled & filters.command(["shutdown"], prefixes=["", "/"]) ) async def cmd_kill(app: PyroClient, msg: Message): if msg.from_user.id not in app.admins: return user = await app.find_user(msg.from_user) if len(USERS_WITH_CONTEXT) > 0: await msg.reply_text( app._("shutdown_confirm", "message", locale=user.locale).format( len(USERS_WITH_CONTEXT) ), reply_markup=InlineKeyboardMarkup( [ [ InlineKeyboardButton( app._("shutdown", "button", locale=user.locale), callback_data="shutdown", ) ] ] ), ) return makedirs(app.config["locations"]["cache"], exist_ok=True) await json_write( {"timestamp": time()}, Path(f"{app.config['locations']['cache']}/shutdown_time"), ) asyncio.get_event_loop().create_task(app.stop())