misc.py 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. import secrets
  2. import string
  3. import requests
  4. from pyrogram import filters
  5. from pyrogram.types import Message
  6. from googletrans import Translator
  7. from cryptography.fernet import Fernet
  8. from wbb import app, FERNET_ENCRYPTION_KEY
  9. from wbb.utils import cust_filter, random_line
  10. __MODULE__ = "Misc"
  11. __HELP__ = '''/commit - Generate Funny Commit Messages
  12. /runs - Idk Test Yourself
  13. /quote - Get Random Linux Quotes
  14. /id - Get Chat_ID or User_ID
  15. /random - Generate Random Complex Passwords
  16. /http - Get Cats Reference Photo For Http Error Codes
  17. /encrypt - Encrypt Text [Can Only Be Decrypted By This Bot]
  18. /decrypt - Decrypt Text
  19. /ipinfo - Get Info About An Ip Address
  20. /cheat - Get Programming Related Help
  21. /weather - To Get Weather Info
  22. /tr - Translate A Message
  23. #RTFM - Check it lol'''
  24. @app.on_message(cust_filter.command(commands=("commit")) & ~filters.edited)
  25. async def commit(_, message: Message):
  26. await message.reply_text((await random_line('wbb/utils/commit.txt')))
  27. @app.on_message(filters.command("RTFM", "#"))
  28. async def rtfm(_, message):
  29. await message.delete()
  30. if not message.reply_to_message:
  31. await message.reply_text("Reply To A Message lol")
  32. return
  33. await message.reply_to_message.reply_text("Are You Lost? READ THE FUCKING DOCS!")
  34. @app.on_message(cust_filter.command(commands=("runs")) & ~filters.edited)
  35. async def runs(_, message: Message):
  36. await message.reply_text((await random_line('wbb/utils/runs.txt')))
  37. @app.on_message(cust_filter.command(commands=("id")) & ~filters.edited)
  38. async def get_id(_, message: Message):
  39. if len(message.command) != 1:
  40. username = message.text.split(None, 1)[1]
  41. user_id = (await app.get_users(username)).id
  42. msg = f"{username}'s ID is `{user_id}`"
  43. await message.reply_text(msg)
  44. elif len(message.command) == 1 and not message.reply_to_message:
  45. chat_id = message.chat.id
  46. msg = f"{message.chat.title}'s ID is `{chat_id}`"
  47. await message.reply_text(msg)
  48. elif len(message.command) == 1 and message.reply_to_message:
  49. from_user_id = message.reply_to_message.from_user.id
  50. from_user_mention = message.reply_to_message.from_user.mention
  51. msg = f"{from_user_mention}'s ID is `{from_user_id}`"
  52. await message.reply_text(msg)
  53. # Random
  54. @app.on_message(cust_filter.command(commands=('random')) & ~filters.edited)
  55. async def random(_, message: Message):
  56. if len(message.command) != 2:
  57. await message.reply_text('"/random" Needs An Argurment.'
  58. ' Ex: `/random 5`')
  59. random
  60. length = message.text.split(None, 1)[1]
  61. try:
  62. if 1 < int(length) < 1000:
  63. alphabet = string.ascii_letters + string.digits
  64. password = ''.join(secrets.choice(alphabet) for i in
  65. range(int(length)))
  66. await message.reply_text(f"`{password}`")
  67. else:
  68. await message.reply_text('Specify A Length Between 1-1000')
  69. except ValueError:
  70. await message.reply_text("Strings Won't Work!, Pass A"
  71. + " Positive Integer Between 1-1000")
  72. # Encrypt
  73. @app.on_message(cust_filter.command(commands=('encrypt')) & ~filters.edited)
  74. async def encrypt(_, message: Message):
  75. if not message.reply_to_message:
  76. await message.reply_text('Reply To A Message To Encrypt It.')
  77. return
  78. text = message.reply_to_message.text
  79. text_in_bytes = bytes(text, 'utf-8')
  80. cipher_suite = Fernet(FERNET_ENCRYPTION_KEY)
  81. encrypted_text = cipher_suite.encrypt(text_in_bytes)
  82. bytes_in_text = encrypted_text.decode("utf-8")
  83. await message.reply_text(bytes_in_text)
  84. # Decrypt
  85. @app.on_message(cust_filter.command(commands=('decrypt')) & ~filters.edited)
  86. async def decrypt(_, message: Message):
  87. if not message.reply_to_message:
  88. await message.reply_text('Reply To A Message To Decrypt It.')
  89. return
  90. text = message.reply_to_message.text
  91. text_in_bytes = bytes(text, 'utf-8')
  92. cipher_suite = Fernet(FERNET_ENCRYPTION_KEY)
  93. decoded_text = cipher_suite.decrypt(text_in_bytes)
  94. bytes_in_text = decoded_text.decode("utf-8")
  95. await message.reply_text(bytes_in_text)
  96. # Cheat.sh
  97. @app.on_message(cust_filter.command(commands=("cheat")) & ~filters.edited)
  98. async def cheat(_, message: Message):
  99. text = message.text.split(None, 1)[1]
  100. ftext = text.split()
  101. try:
  102. language = ftext[0]
  103. except IndexError:
  104. await message.reply_text("/cheat [language] [query]")
  105. return
  106. try:
  107. query = ftext[1]
  108. except IndexError:
  109. await message.reply_text("/cheat [language] [query]")
  110. return
  111. r = requests.get(f"http://cht.sh/{language}/{query}?QT")
  112. reply = r.text
  113. await message.reply_text(f"`{reply}`")
  114. # Weather
  115. @app.on_message(cust_filter.command(commands=("weather")) & ~filters.edited)
  116. async def weather(_, message: Message):
  117. city = message.text.split(None, 1)[1]
  118. if len(message.command) != 2:
  119. await message.reply_text("/weather [city]")
  120. return
  121. r = requests.get(f"https://wttr.in/{city}?mnTC0")
  122. data = r.text
  123. await message.reply_text(f"`{data}`")
  124. # Translate
  125. @app.on_message(cust_filter.command(commands=("tr")) & ~filters.edited)
  126. async def tr(_, message: Message):
  127. lang = message.text.split(None, 1)[1]
  128. if not message.reply_to_message or lang == "":
  129. await message.reply_text(
  130. "Reply to a message with /tr [language code]"
  131. + "\nGet supported language list from here -"
  132. + " https://py-googletrans.readthedocs.io/en"
  133. + "/latest/#googletrans-languages"
  134. )
  135. return
  136. text = message.reply_to_message.text
  137. i = Translator().translate(text, dest=lang)
  138. await message.reply_text(i.text)
  139. @app.on_message(filters.command('bun'))
  140. async def bunn(_, message):
  141. if message.reply_to_message:
  142. await message.reply_to_message.reply_sticker('CAACAgUAAx0CWIlO9AABARyRYBhyjKXFATVhu7AGQwip3TzSFiMAAuMBAAJ7usBUIu2xBtXTmuweBA')
  143. await app.send_message(message.chat.id, text="Eat Bun")
  144. return
  145. if not message.reply_to_message:
  146. await message.reply_sticker('CAACAgUAAx0CWIlO9AABARyRYBhyjKXFATVhu7AGQwip3TzSFiMAAuMBAAJ7usBUIu2xBtXTmuweBA')
  147. await app.send_message(message.chat.id, text="Eat Bun")