45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
import asyncio
|
|
|
|
from ub_core.utils.helpers import create_chunks
|
|
|
|
from app import BOT, Message
|
|
from app.plugins.tg_tools.get_message import parse_link
|
|
|
|
|
|
@BOT.add_cmd(cmd="del")
|
|
async def delete_message(bot: BOT, message: Message) -> None:
|
|
"""
|
|
CMD: DEL
|
|
INFO: Delete the replied message.
|
|
FLAGS: -r to remotely delete a text using its link.
|
|
USAGE:
|
|
.del | .del -r t.me/......
|
|
"""
|
|
if "-r" in message.flags:
|
|
chat_id, message_id = parse_link(message.filtered_input)
|
|
await bot.delete_messages(chat_id=chat_id, message_ids=message_id, revoke=True)
|
|
return
|
|
await message.delete(reply=True)
|
|
|
|
|
|
@BOT.add_cmd(cmd="purge")
|
|
async def purge_(bot: BOT, message: Message) -> None:
|
|
start_message: int = message.reply_id
|
|
|
|
if not start_message:
|
|
await message.reply("reply to a message")
|
|
return
|
|
|
|
end_message: int = message.id
|
|
|
|
message_ids: list[int] = [
|
|
end_message,
|
|
*[i for i in range(int(start_message), int(end_message))],
|
|
]
|
|
|
|
for chunk in create_chunks(message_ids, chunk_size=25):
|
|
await bot.delete_messages(
|
|
chat_id=message.chat.id, message_ids=chunk, revoke=True
|
|
)
|
|
await asyncio.sleep(5)
|