admin.py 1.2 KB

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