Spaces:
Runtime error
Runtime error
File size: 4,237 Bytes
80287e2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
import asyncio
import time
from pyrogram import filters
from pyrogram.enums import ChatMembersFilter
from pyrogram.types import CallbackQuery, Message
from Devine import app
from Devine.core.call import Anony
from Devine.misc import db
from Devine.utils.database import get_assistant, get_authuser_names, get_cmode
from Devine.utils.decorators import ActualAdminCB, AdminActual, language
from Devine.utils.formatters import alpha_to_int, get_readable_time
from config import BANNED_USERS, adminlist, lyrical
rel = {}
@app.on_message(
filters.command(["admincache", "reload", "refresh"]) & filters.group & ~BANNED_USERS
)
@language
async def reload_admin_cache(client, message: Message, _):
try:
if message.chat.id not in rel:
rel[message.chat.id] = {}
else:
saved = rel[message.chat.id]
if saved > time.time():
left = get_readable_time((int(saved) - int(time.time())))
return await message.reply_text(_["reload_1"].format(left))
adminlist[message.chat.id] = []
async for user in app.get_chat_members(
message.chat.id, filter=ChatMembersFilter.ADMINISTRATORS
):
if user.privileges.can_manage_video_chats:
adminlist[message.chat.id].append(user.user.id)
authusers = await get_authuser_names(message.chat.id)
for user in authusers:
user_id = await alpha_to_int(user)
adminlist[message.chat.id].append(user_id)
now = int(time.time()) + 180
rel[message.chat.id] = now
await message.reply_text(_["reload_2"])
except:
await message.reply_text(_["reload_3"])
@app.on_message(filters.command(["reboot"]) & filters.group & ~BANNED_USERS)
@AdminActual
async def restartbot(client, message: Message, _):
mystic = await message.reply_text(_["reload_4"].format(app.mention))
await asyncio.sleep(1)
try:
db[message.chat.id] = []
await Anony.stop_stream_force(message.chat.id)
except:
pass
userbot = await get_assistant(message.chat.id)
try:
if message.chat.username:
await userbot.resolve_peer(message.chat.username)
else:
await userbot.resolve_peer(message.chat.id)
except:
pass
chat_id = await get_cmode(message.chat.id)
if chat_id:
try:
got = await app.get_chat(chat_id)
except:
pass
userbot = await get_assistant(chat_id)
try:
if got.username:
await userbot.resolve_peer(got.username)
else:
await userbot.resolve_peer(chat_id)
except:
pass
try:
db[chat_id] = []
await Anony.stop_stream_force(chat_id)
except:
pass
return await mystic.edit_text(_["reload_5"].format(app.mention))
@app.on_callback_query(filters.regex("close") & ~BANNED_USERS)
async def close_menu(_, query: CallbackQuery):
try:
await query.answer()
await query.message.delete()
umm = await query.message.reply_text(
f"Cʟᴏsᴇᴅ ʙʏ : {query.from_user.mention}"
)
await asyncio.sleep(7)
await umm.delete()
except:
pass
@app.on_callback_query(filters.regex("stop_downloading") & ~BANNED_USERS)
@ActualAdminCB
async def stop_download(client, CallbackQuery: CallbackQuery, _):
message_id = CallbackQuery.message.id
task = lyrical.get(message_id)
if not task:
return await CallbackQuery.answer(_["tg_4"], show_alert=True)
if task.done() or task.cancelled():
return await CallbackQuery.answer(_["tg_5"], show_alert=True)
if not task.done():
try:
task.cancel()
try:
lyrical.pop(message_id)
except:
pass
await CallbackQuery.answer(_["tg_6"], show_alert=True)
return await CallbackQuery.edit_message_text(
_["tg_7"].format(CallbackQuery.from_user.mention)
)
except:
return await CallbackQuery.answer(_["tg_8"], show_alert=True)
await CallbackQuery.answer(_["tg_9"], show_alert=True)
|