inline.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. from wbb import app
  2. from wbb.utils.inlinefuncs import (
  3. google_search_func, urban_func, translate_func,
  4. alive_function, webss, shortify, wall_func,
  5. saavn_func, deezer_func, inline_help_func,
  6. torrent_func, youtube_func, lyrics_func,
  7. eval_func, github_user_func, github_repo_func,
  8. tg_search_func
  9. )
  10. from pyrogram import filters
  11. from pyrogram.errors.exceptions.bad_request_400 import QueryIdInvalid
  12. __MODULE__ = "Inline"
  13. __HELP__ = '''```
  14. - alive - Check Bot's Stats.
  15. - tr [LANG] [QUERY] - Translate Text.
  16. - ud [QUERY] - Urban Dictionary Query.
  17. - google [QUERY] - Google Search.
  18. - webss [URL] - Take Screenshot Of A Website.
  19. - bitly [URL] - Shorten A Link.
  20. - wall [QUERY] - Find Wallpapers.
  21. - saavn [SONG_NAME] - Get Songs From Saavn.
  22. - deezer [SONG_NAME] - Get Songs From Deezer.
  23. - yt [Query] - Youtube Search.
  24. - torrent [QUERY] - Torrent Search.
  25. - lyrics [QUERY] - Lyrics Search.
  26. - eval [CODE] - Execute Python Code.
  27. - gh_user [USERNAME] - Search A Github User.
  28. - gh_repo [USERNAME/REPO] - Search A Github Repo.
  29. - search [QUERY] - Search For A Message Globally.
  30. ```'''
  31. @app.on_message(filters.command("inline"))
  32. async def inline_help(_, message):
  33. await app.send_message(message.chat.id, text=__HELP__)
  34. @app.on_inline_query()
  35. async def inline_query_handler(client, query):
  36. try:
  37. text = query.query.lower()
  38. answers = []
  39. if text.strip() == '':
  40. answerss = await inline_help_func(__HELP__)
  41. await client.answer_inline_query(
  42. query.id,
  43. results=answerss,
  44. cache_time=10
  45. )
  46. return
  47. elif text.split()[0] == "alive":
  48. answerss = await alive_function(answers)
  49. await client.answer_inline_query(
  50. query.id,
  51. results=answerss,
  52. cache_time=10
  53. )
  54. elif text.split()[0] == "tr":
  55. if len(text.split()) < 3:
  56. await client.answer_inline_query(
  57. query.id,
  58. results=answers,
  59. switch_pm_text='Translate Text.',
  60. switch_pm_parameter='inline',
  61. )
  62. return
  63. lang = text.split()[1]
  64. tex = text.split(None, 2)[2].strip()
  65. answerss = await translate_func(answers, lang, tex)
  66. await client.answer_inline_query(
  67. query.id,
  68. results=answerss,
  69. )
  70. elif text.split()[0] == "ud":
  71. if len(text.split()) < 2:
  72. await client.answer_inline_query(
  73. query.id,
  74. results=answers,
  75. switch_pm_text='Search Urban Dictionary.',
  76. switch_pm_parameter='inline',
  77. )
  78. return
  79. tex = text.split(None, 1)[1].strip()
  80. answerss = await urban_func(answers, tex)
  81. await client.answer_inline_query(
  82. query.id,
  83. results=answerss,
  84. )
  85. elif text.split()[0] == "google":
  86. if len(text.split()) < 2:
  87. await client.answer_inline_query(
  88. query.id,
  89. results=answers,
  90. switch_pm_text='Search Google.',
  91. switch_pm_parameter='inline',
  92. )
  93. return
  94. tex = text.split(None, 1)[1].strip()
  95. answerss = await google_search_func(answers, tex)
  96. await client.answer_inline_query(
  97. query.id,
  98. results=answerss,
  99. )
  100. elif text.split()[0] == "webss":
  101. if len(text.split()) < 2:
  102. await client.answer_inline_query(
  103. query.id,
  104. results=answers,
  105. switch_pm_text='Take Screenshot Of A Website.',
  106. switch_pm_parameter='inline',
  107. )
  108. return
  109. tex = text.split(None, 1)[1].strip()
  110. answerss = await webss(tex)
  111. await client.answer_inline_query(
  112. query.id,
  113. results=answerss,
  114. cache_time=2
  115. )
  116. elif text.split()[0] == "bitly":
  117. if len(text.split()) < 2:
  118. await client.answer_inline_query(
  119. query.id,
  120. results=answers,
  121. switch_pm_text='Shorten A Link.',
  122. switch_pm_parameter='inline',
  123. )
  124. return
  125. tex = text.split(None, 1)[1].strip()
  126. answerss = await shortify(tex)
  127. await client.answer_inline_query(
  128. query.id,
  129. results=answerss,
  130. cache_time=2
  131. )
  132. elif text.split()[0] == "wall":
  133. if len(text.split()) < 2:
  134. await client.answer_inline_query(
  135. query.id,
  136. results=answers,
  137. switch_pm_text='Search Wallpapers.',
  138. switch_pm_parameter='inline',
  139. )
  140. return
  141. tex = text.split(None, 1)[1].strip()
  142. answerss = await wall_func(answers, tex)
  143. await client.answer_inline_query(
  144. query.id,
  145. results=answerss
  146. )
  147. elif text.split()[0] == "saavn":
  148. if len(text.split()) < 2:
  149. await client.answer_inline_query(
  150. query.id,
  151. results=answers,
  152. switch_pm_text='Search Songs On JioSaavn.',
  153. switch_pm_parameter='inline',
  154. )
  155. return
  156. tex = text.split(None, 1)[1].strip()
  157. answerss = await saavn_func(answers, tex)
  158. await client.answer_inline_query(
  159. query.id,
  160. results=answerss
  161. )
  162. elif text.split()[0] == "deezer":
  163. if len(text.split()) < 2:
  164. await client.answer_inline_query(
  165. query.id,
  166. results=answers,
  167. switch_pm_text='Search Songs On Deezer.',
  168. switch_pm_parameter='inline',
  169. )
  170. return
  171. tex = text.split(None, 1)[1].strip()
  172. answerss = await deezer_func(answers, tex)
  173. await client.answer_inline_query(
  174. query.id,
  175. results=answerss
  176. )
  177. elif text.split()[0] == "torrent":
  178. if len(text.split()) < 2:
  179. await client.answer_inline_query(
  180. query.id,
  181. results=answers,
  182. switch_pm_text='Search For Torrent.',
  183. switch_pm_parameter='inline',
  184. )
  185. return
  186. tex = text.split(None, 1)[1].strip()
  187. answerss = await torrent_func(answers, tex)
  188. await client.answer_inline_query(
  189. query.id,
  190. results=answerss,
  191. )
  192. elif text.split()[0] == "yt":
  193. if len(text.split()) < 2:
  194. await client.answer_inline_query(
  195. query.id,
  196. results=answers,
  197. switch_pm_text='Search YouTube.',
  198. switch_pm_parameter='inline',
  199. )
  200. return
  201. tex = text.split(None, 1)[1].strip()
  202. answerss = await youtube_func(answers, tex)
  203. await client.answer_inline_query(
  204. query.id,
  205. results=answerss
  206. )
  207. elif text.split()[0] == "lyrics":
  208. if len(text.split()) < 2:
  209. await client.answer_inline_query(
  210. query.id,
  211. results=answers,
  212. switch_pm_text='Search Lyrics.',
  213. switch_pm_parameter='inline',
  214. )
  215. return
  216. tex = text.split(None, 1)[1].strip()
  217. answerss = await lyrics_func(answers, tex)
  218. await client.answer_inline_query(
  219. query.id,
  220. results=answerss
  221. )
  222. elif text.split()[0] == "eval":
  223. if len(text.split()) < 2:
  224. await client.answer_inline_query(
  225. query.id,
  226. results=answers,
  227. switch_pm_text='Excute Python Code.',
  228. switch_pm_parameter='inline',
  229. )
  230. return
  231. user_id = query.from_user.id
  232. tex = text.split(None, 1)[1].strip()
  233. answerss = await eval_func(answers, tex, user_id)
  234. await client.answer_inline_query(
  235. query.id,
  236. results=answerss,
  237. cache_time=2
  238. )
  239. elif text.split()[0] == "gh_user":
  240. if len(text.split()) < 2:
  241. await client.answer_inline_query(
  242. query.id,
  243. results=answers,
  244. switch_pm_text='Search Github User.',
  245. switch_pm_parameter='inline',
  246. )
  247. return
  248. tex = text.split(None, 1)[1].strip()
  249. answerss = await github_user_func(answers, tex)
  250. await client.answer_inline_query(
  251. query.id,
  252. results=answerss,
  253. cache_time=2
  254. )
  255. elif text.split()[0] == "gh_repo":
  256. if len(text.split()) < 2:
  257. await client.answer_inline_query(
  258. query.id,
  259. results=answers,
  260. switch_pm_text='Search Github Repo.',
  261. switch_pm_parameter='inline',
  262. )
  263. return
  264. tex = text.split(None, 1)[1].strip()
  265. answerss = await github_repo_func(answers, tex)
  266. await client.answer_inline_query(
  267. query.id,
  268. results=answerss,
  269. cache_time=2
  270. )
  271. elif text.split()[0] == "search":
  272. if len(text.split()) < 2:
  273. await client.answer_inline_query(
  274. query.id,
  275. results=answers,
  276. switch_pm_text='Global Message Search.',
  277. switch_pm_parameter='inline',
  278. )
  279. return
  280. user_id = query.from_user.id
  281. tex = text.split(None, 1)[1].strip()
  282. answerss = await tg_search_func(answers, tex, user_id)
  283. await client.answer_inline_query(
  284. query.id,
  285. results=answerss,
  286. cache_time=2
  287. )
  288. except (IndexError, TypeError, KeyError, ValueError, QueryIdInvalid):
  289. return