admin.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import asyncio
  2. from pyrogram import Client, filters
  3. from wbb.utils import cust_filter
  4. from wbb import app, Command
  5. from wbb.utils.is_admin import is_admin
  6. __MODULE__ = "Admin"
  7. __HELP__ = '''
  8. /purge - Purge Messages From The Replied Message To The Last Message [Limit = 100]
  9. '''
  10. @app.on_message(cust_filter.command(commands=(["purge"])))
  11. async def purge(client, message):
  12. app.set_parse_mode("markdown")
  13. if message.chat.type not in (("supergroup", "channel")):
  14. return
  15. admin = await is_admin(message)
  16. if not admin:
  17. return
  18. message_ids = []
  19. if message.reply_to_message:
  20. for a_s_message_id in range(
  21. message.reply_to_message.message_id,
  22. message.message_id
  23. ):
  24. message_ids.append(a_s_message_id)
  25. if len(message_ids) == 100:
  26. await client.delete_messages(
  27. chat_id=message.chat.id,
  28. message_ids=message_ids,
  29. revoke=True
  30. )
  31. message_ids = []
  32. if len(message_ids) > 0:
  33. await client.delete_messages(
  34. chat_id=message.chat.id,
  35. message_ids=message_ids,
  36. revoke=True
  37. )
  38. m = await message.reply_text(
  39. f"```Purged!```"
  40. )
  41. await asyncio.sleep(2)
  42. await m.delete()