Files
homelab/modules/fakeactions.py
T
forust 3eaef5dc90 Squashed 'userbot/' content from commit 7fb0a0e
git-subtree-dir: userbot
git-subtree-split: 7fb0a0e179
2026-06-19 23:20:23 +02:00

81 lines
3.0 KiB
Python

from asyncio import sleep
from pyrogram import Client, enums, filters
from pyrogram.raw import functions
from pyrogram.types import InputReplyToMessage, Message
from utils.misc import modules_help, prefix
from utils.scripts import format_exc
commands = {
'ftype': enums.ChatAction.TYPING,
'faudio': enums.ChatAction.UPLOAD_AUDIO,
'fvideo': enums.ChatAction.UPLOAD_VIDEO,
'fphoto': enums.ChatAction.UPLOAD_PHOTO,
'fdocument': enums.ChatAction.UPLOAD_DOCUMENT,
'flocation': enums.ChatAction.FIND_LOCATION,
'frvideo': enums.ChatAction.RECORD_VIDEO,
'frvoice': enums.ChatAction.RECORD_AUDIO,
'frvideor': enums.ChatAction.RECORD_VIDEO_NOTE,
'fvideor': enums.ChatAction.UPLOAD_VIDEO_NOTE,
'fgame': enums.ChatAction.PLAYING,
'fcontact': enums.ChatAction.CHOOSE_CONTACT,
'fstop': enums.ChatAction.CANCEL,
'fscrn': 'screenshot',
}
# noinspection PyUnusedLocal
@Client.on_message(filters.command(list(commands), prefix) & filters.me)
async def fakeactions_handler(client: Client, message: Message):
cmd = message.command[0]
try:
sec = int(message.command[1])
if sec > 60:
sec = 60
except Exception:
sec = None
await message.delete()
action = commands[cmd]
try:
if action != 'screenshot':
if sec and action != enums.ChatAction.CANCEL:
while sec > 0:
await client.send_chat_action(chat_id=message.chat.id, action=action)
await sleep(1)
sec -= 1
return await client.send_chat_action(chat_id=message.chat.id, action=action)
else:
for _ in range(sec if sec else 1):
await client.invoke(
functions.messages.SendScreenshotNotification(
peer=await client.resolve_peer(message.chat.id),
reply_to=InputReplyToMessage(reply_to_message_id=message.reply_to_message.id),
random_id=client.rnd_id(),
)
)
await sleep(0.1)
except AttributeError:
return await client.send_message('me', 'Error in <b>fakeactions</b>reply to message is required')
except Exception as e:
return await client.send_message('me', 'Error in <b>fakeactions</b> module:\n' + format_exc(e))
modules_help['fakeactions'] = {
'ftype [sec]': 'Typing... action',
'faudio [sec]': 'Sending voice... action',
'fvideo [sec]': 'Sending video... action',
'fphoto [sec]': 'Sending photo... action',
'fdocument [sec]': 'Sending document... action',
'flocation [sec]': 'Find location... action',
'fcontact [sec]': 'Sending contact... action',
'frvideo [sec]': 'Recording video... action',
'frvoice [sec]': 'Recording voice... action',
'frvideor [sec]': 'Recording round video... action',
'fvideor [sec]': 'Uploading round video... action',
'fgame [sec]': 'Playing game... action',
'fstop': 'Stop actions',
'fscrn [amount] [reply_to_message]*': 'Make screenshot action',
}