taglogger.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from pykeyboard import InlineKeyboard
  2. from pyrogram import filters
  3. from pyrogram.types import InlineKeyboardButton, Message
  4. from wbb import (BOT_ID, LOG_GROUP_ID, LOG_MENTIONS, USERBOT_ID, USERBOT_NAME,
  5. USERBOT_USERNAME, app, app2)
  6. from wbb.core.decorators.errors import capture_err
  7. from wbb.utils.filter_groups import taglog_group
  8. __MODULE__ = "Tag Logger"
  9. __HELP__ = """
  10. THIS MODULE IS ONLY FOR SUDOERS
  11. This module logs every action that contains your id, name, username, mention.
  12. """
  13. IS_USERBOT_ONLINE = False
  14. @app2.on_user_status()
  15. async def statusUpdaterFunc(_, update):
  16. if update.id != USERBOT_ID:
  17. return
  18. global IS_USERBOT_ONLINE
  19. if update.status == "online":
  20. IS_USERBOT_ONLINE = True
  21. return
  22. IS_USERBOT_ONLINE = False
  23. async def sendLog(message: Message):
  24. msg = f"""
  25. **User:** {message.from_user.mention} [`{message.from_user.id if message.from_user else None}`]
  26. **Text:** {message.text if message.text else message.caption if message.caption else None}
  27. **Chat:** {message.chat.title} [`{message.chat.id}`]
  28. **Bot:** {message.from_user.is_bot}
  29. """
  30. button = InlineKeyboard(row_width=1)
  31. button.add(InlineKeyboardButton(text="Check Action", url=message.link))
  32. await app.send_message(LOG_GROUP_ID, text=msg, reply_markup=button)
  33. @app2.on_message(
  34. ~filters.me
  35. & ~filters.chat([LOG_GROUP_ID, BOT_ID])
  36. & ~filters.private
  37. & ~filters.edited,
  38. group=taglog_group,
  39. )
  40. @capture_err
  41. async def tagLoggerFunc(_, message: Message):
  42. if not LOG_MENTIONS:
  43. return
  44. if IS_USERBOT_ONLINE:
  45. return
  46. if message.reply_to_message:
  47. reply_message = message.reply_to_message
  48. if reply_message.from_user:
  49. if reply_message.from_user.id == USERBOT_ID:
  50. await sendLog(message)
  51. return
  52. if message.text:
  53. text = message.text
  54. elif message.caption:
  55. text = message.caption
  56. else:
  57. return
  58. if (
  59. str(USERBOT_ID) in text
  60. or str(USERBOT_USERNAME) in text
  61. or USERBOT_NAME in text
  62. ):
  63. await sendLog(message)
  64. return