inline.py 12 KB

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