mirror of
https://github.com/MuRuLOSE/limoka.git
synced 2026-06-18 15:14:18 +02:00
Commited backup
This commit is contained in:
154
AlpacaGang/ftg-modules/purge.py
Normal file
154
AlpacaGang/ftg-modules/purge.py
Normal file
@@ -0,0 +1,154 @@
|
||||
# Copyright (C) 2019 The Raphielscape Company LLC.
|
||||
#
|
||||
# Licensed under the Raphielscape Public License, Version 1.c (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
#
|
||||
""" Userbot module for purging unneeded messages(usually spam or ot). """
|
||||
|
||||
from asyncio import sleep
|
||||
|
||||
from telethon.errors import rpcbaseerrors
|
||||
|
||||
from userbot import BOTLOG, BOTLOG_CHATID, CMD_HELP
|
||||
from userbot.events import register
|
||||
|
||||
|
||||
@register(outgoing=True, pattern="^.purge$")
|
||||
async def fastpurger(purg):
|
||||
""" For .purge command, purge all messages starting from the reply. """
|
||||
chat = await purg.get_input_chat()
|
||||
msgs = []
|
||||
itermsg = purg.client.iter_messages(chat, min_id=purg.reply_to_msg_id)
|
||||
count = 0
|
||||
|
||||
if purg.reply_to_msg_id is not None:
|
||||
async for msg in itermsg:
|
||||
msgs.append(msg)
|
||||
count = count + 1
|
||||
msgs.append(purg.reply_to_msg_id)
|
||||
if len(msgs) == 100:
|
||||
await purg.client.delete_messages(chat, msgs)
|
||||
msgs = []
|
||||
else:
|
||||
await purg.edit("`I need a mesasge to start purging from.`")
|
||||
return
|
||||
|
||||
if msgs:
|
||||
await purg.client.delete_messages(chat, msgs)
|
||||
done = await purg.client.send_message(
|
||||
purg.chat_id, f"`Fast purge complete!`\
|
||||
\nPurged {str(count)} messages")
|
||||
|
||||
if BOTLOG:
|
||||
await purg.client.send_message(
|
||||
BOTLOG_CHATID,
|
||||
"Purge of " + str(count) + " messages done successfully.")
|
||||
await sleep(2)
|
||||
await done.delete()
|
||||
|
||||
|
||||
@register(outgoing=True, pattern="^.purgeme")
|
||||
async def purgeme(delme):
|
||||
""" For .purgeme, delete x count of your latest message."""
|
||||
message = delme.text
|
||||
count = int(message[9:])
|
||||
i = 1
|
||||
|
||||
async for message in delme.client.iter_messages(delme.chat_id,
|
||||
from_user='me'):
|
||||
if i > count + 1:
|
||||
break
|
||||
i = i + 1
|
||||
await message.delete()
|
||||
|
||||
smsg = await delme.client.send_message(
|
||||
delme.chat_id,
|
||||
"`Purge complete!` Purged " + str(count) + " messages.",
|
||||
)
|
||||
if BOTLOG:
|
||||
await delme.client.send_message(
|
||||
BOTLOG_CHATID,
|
||||
"Purge of " + str(count) + " messages done successfully.")
|
||||
await sleep(2)
|
||||
i = 1
|
||||
await smsg.delete()
|
||||
|
||||
|
||||
@register(outgoing=True, pattern="^.del$")
|
||||
async def delete_it(delme):
|
||||
""" For .del command, delete the replied message. """
|
||||
msg_src = await delme.get_reply_message()
|
||||
if delme.reply_to_msg_id:
|
||||
try:
|
||||
await msg_src.delete()
|
||||
await delme.delete()
|
||||
if BOTLOG:
|
||||
await delme.client.send_message(
|
||||
BOTLOG_CHATID, "Deletion of message was successful")
|
||||
except rpcbaseerrors.BadRequestError:
|
||||
if BOTLOG:
|
||||
await delme.client.send_message(
|
||||
BOTLOG_CHATID, "Well, I can't delete a message")
|
||||
|
||||
|
||||
@register(outgoing=True, pattern="^.edit")
|
||||
async def editer(edit):
|
||||
""" For .editme command, edit your last message. """
|
||||
message = edit.text
|
||||
chat = await edit.get_input_chat()
|
||||
self_id = await edit.client.get_peer_id('me')
|
||||
string = str(message[6:])
|
||||
i = 1
|
||||
async for message in edit.client.iter_messages(chat, self_id):
|
||||
if i == 2:
|
||||
await message.edit(string)
|
||||
await edit.delete()
|
||||
break
|
||||
i = i + 1
|
||||
if BOTLOG:
|
||||
await edit.client.send_message(BOTLOG_CHATID,
|
||||
"Edit query was executed successfully")
|
||||
|
||||
|
||||
@register(outgoing=True, pattern="^.sd")
|
||||
async def selfdestruct(destroy):
|
||||
""" For .sd command, make seflf-destructable messages. """
|
||||
message = destroy.text
|
||||
counter = int(message[4:6])
|
||||
text = str(destroy.text[6:])
|
||||
await destroy.delete()
|
||||
smsg = await destroy.client.send_message(destroy.chat_id, text)
|
||||
await sleep(counter)
|
||||
await smsg.delete()
|
||||
if BOTLOG:
|
||||
await destroy.client.send_message(BOTLOG_CHATID,
|
||||
"sd query done successfully")
|
||||
|
||||
|
||||
CMD_HELP.update({
|
||||
'purge':
|
||||
'.purge\
|
||||
\nUsage: Purges all messages starting from the reply.'
|
||||
})
|
||||
|
||||
CMD_HELP.update({
|
||||
'purgeme':
|
||||
'.purgeme <x>\
|
||||
\nUsage: Deletes x amount of your latest messages.'
|
||||
})
|
||||
|
||||
CMD_HELP.update({"del": ".del\
|
||||
\nUsage: Deletes the message you replied to."})
|
||||
|
||||
CMD_HELP.update({
|
||||
'edit':
|
||||
".edit <newmessage>\
|
||||
\nUsage: Replace your last message with <newmessage>."
|
||||
})
|
||||
|
||||
CMD_HELP.update({
|
||||
'sd':
|
||||
'.sd <x> <message>\
|
||||
\nUsage: Creates a message that selfdestructs in x seconds.\
|
||||
\nKeep the seconds under 100 since it puts your bot to sleep.'
|
||||
})
|
||||
Reference in New Issue
Block a user