Captain D. Ezio commited on
Commit
938bdcb
·
2 Parent(s): 6193afa 1ed43d5

Merge branch 'main' into dependabot/pip/sniffio-1.3.1

Browse files
.pre-commit-config.yaml CHANGED
@@ -24,7 +24,7 @@ repos:
24
  args: [--py36-plus]
25
 
26
  - repo: https://github.com/asottile/pyupgrade
27
- rev: v3.19.0
28
  hooks:
29
  - id: pyupgrade
30
  args: [--py36-plus]
 
24
  args: [--py36-plus]
25
 
26
  - repo: https://github.com/asottile/pyupgrade
27
+ rev: v3.19.1
28
  hooks:
29
  - id: pyupgrade
30
  args: [--py36-plus]
Powers/database/locks_db.py CHANGED
@@ -92,7 +92,7 @@ class LOCKS(MongoDB):
92
  to_return["anti_fwd"]["user"] = True
93
  elif i["locktype"] == "anti_fwd_c":
94
  to_return["anti_fwd"]["chat"] = True
95
- elif i["anti_links"] == "anti_links":
96
  to_return["anti_links"] = True
97
  elif i["locktype"] == "bot":
98
  to_return["bot"] = True
 
92
  to_return["anti_fwd"]["user"] = True
93
  elif i["locktype"] == "anti_fwd_c":
94
  to_return["anti_fwd"]["chat"] = True
95
+ elif i["locktype"] == "anti_links":
96
  to_return["anti_links"] = True
97
  elif i["locktype"] == "bot":
98
  to_return["bot"] = True
Powers/plugins/dev.py CHANGED
@@ -720,6 +720,7 @@ __HELP__ = """
720
  • /neofetch : Fetch neo.
721
  • /eval : Evaluate the given python code.
722
  • /exec : Execute the given code.
 
723
  • /chatlist : Return the list of chats present in database
724
  • /uptime : Return the uptime of the bot.
725
  • /leavechat : Bot will leave the provided chat.
 
720
  • /neofetch : Fetch neo.
721
  • /eval : Evaluate the given python code.
722
  • /exec : Execute the given code.
723
+ • /minfo [module name]: Give info about module
724
  • /chatlist : Return the list of chats present in database
725
  • /uptime : Return the uptime of the bot.
726
  • /leavechat : Bot will leave the provided chat.
Powers/plugins/info.py CHANGED
@@ -241,12 +241,11 @@ async def info_func(c: Gojo, message: Message):
241
  return
242
  try:
243
  user, _, user_name = await extract_user(c, message)
244
- except Exception:
245
- await message.reply_text("Got Some errors failed to fetch user info")
246
  LOGGER.error(e)
247
- LOGGER.error(format_exc)
248
- if not user:
249
- await message.reply_text("Can't find user to fetch info!")
250
 
251
  m = await message.reply_text(
252
  f"Fetching {f'@{user_name}' if user_name else 'user'} info from telegram's database..."
 
241
  return
242
  try:
243
  user, _, user_name = await extract_user(c, message)
244
+ except Exception as e:
245
+ await message.reply_text(f"Got Some errors failed to fetch user info\n{e}")
246
  LOGGER.error(e)
247
+ LOGGER.error(format_exc())
248
+ return
 
249
 
250
  m = await message.reply_text(
251
  f"Fetching {f'@{user_name}' if user_name else 'user'} info from telegram's database..."
Powers/plugins/locks.py CHANGED
@@ -254,6 +254,7 @@ async def view_locks(_, m: Message):
254
  <b>Can send links:</b> {vantil}
255
  <b>Can bot send messages:</b> {vantibot}
256
  """
 
257
  except RPCError as e_f:
258
  await chkmsg.edit_text(text="Something went wrong!")
259
  await m.reply_text(e_f)
 
254
  <b>Can send links:</b> {vantil}
255
  <b>Can bot send messages:</b> {vantibot}
256
  """
257
+ await chkmsg.edit_text(permission_view_str)
258
  except RPCError as e_f:
259
  await chkmsg.edit_text(text="Something went wrong!")
260
  await m.reply_text(e_f)
Powers/plugins/stickers.py CHANGED
@@ -276,7 +276,7 @@ async def memify_it(c: Gojo, m: Message):
276
  kb = IKM(
277
  [
278
  [
279
- IKB("Join for memes", url="https://t.me/memesofdank")
280
  ]
281
  ]
282
  )
@@ -331,7 +331,7 @@ async def get_sticker_from_file(c: Gojo, m: Message):
331
  if repl.sticker:
332
  if repl.sticker.is_animated:
333
  upp = await repl.download()
334
- up = tgs_to_gif(upp, True)
335
  await x.delete()
336
  await m.reply_animation(up, caption=Caption)
337
  elif repl.sticker.is_video:
 
276
  kb = IKM(
277
  [
278
  [
279
+ IKB("You might like", url="https://t.me/me_and_ghost")
280
  ]
281
  ]
282
  )
 
331
  if repl.sticker:
332
  if repl.sticker.is_animated:
333
  upp = await repl.download()
334
+ up = await tgs_to_gif(upp, True)
335
  await x.delete()
336
  await m.reply_animation(up, caption=Caption)
337
  elif repl.sticker.is_video:
Powers/plugins/web_con.py CHANGED
@@ -304,6 +304,7 @@ async def download_instareels(c: Gojo, m: Message):
304
  content = insta.get_media()
305
 
306
  if content["code"] == 69 or content["message"] != "success":
 
307
  return await m.reply_text(content["message"])
308
 
309
  try:
 
304
  content = insta.get_media()
305
 
306
  if content["code"] == 69 or content["message"] != "success":
307
+ await to_edit.delete()
308
  return await m.reply_text(content["message"])
309
 
310
  try:
Powers/utils/web_helpers.py CHANGED
@@ -140,7 +140,7 @@ async def song_search(query, max_results=1):
140
  except Exception as e:
141
  LOGGER.error(e)
142
  LOGGER.error(format_exc())
143
- return yt_dict
144
  nums = 1
145
  for i in results["result"]:
146
  durr = i['duration'].split(":")
@@ -169,7 +169,7 @@ async def song_search(query, max_results=1):
169
  thumb = {"thumbnail": i["thumbnails"][0]["url"]}
170
  except Exception:
171
  thumb = {"thumbnail": None}
172
- dict_form |= thumb
173
  yt_dict[nums] = dict_form
174
  nums += 1
175
  return yt_dict
@@ -226,6 +226,9 @@ async def youtube_downloader(c: Gojo, m: Message, query: str, type_: str):
226
  ext = "mp4"
227
  # ydl = yt_dlp.YoutubeDL(opts)
228
  dicti = await song_search(query, 1)
 
 
 
229
  if not dicti and type(dicti) != str:
230
  await m.reply_text("File with duration less than or equals to 10 minutes is allowed only")
231
  elif type(dicti) == str:
 
140
  except Exception as e:
141
  LOGGER.error(e)
142
  LOGGER.error(format_exc())
143
+ return {0: e}
144
  nums = 1
145
  for i in results["result"]:
146
  durr = i['duration'].split(":")
 
169
  thumb = {"thumbnail": i["thumbnails"][0]["url"]}
170
  except Exception:
171
  thumb = {"thumbnail": None}
172
+ dict_form.update(thumb)
173
  yt_dict[nums] = dict_form
174
  nums += 1
175
  return yt_dict
 
226
  ext = "mp4"
227
  # ydl = yt_dlp.YoutubeDL(opts)
228
  dicti = await song_search(query, 1)
229
+ if err := dicti.get(0, None):
230
+ await m.reply_text(err)
231
+ return
232
  if not dicti and type(dicti) != str:
233
  await m.reply_text("File with duration less than or equals to 10 minutes is allowed only")
234
  elif type(dicti) == str:
Powers/utils/web_scrapper.py CHANGED
@@ -6,7 +6,6 @@ import httpx
6
 
7
  from Powers import *
8
 
9
-
10
  # import requests
11
  # from selenium import webdriver
12
  # from selenium.webdriver.chrome.options import Options
@@ -210,7 +209,8 @@ class SCRAP_DATA:
210
 
211
  # else:
212
  # return {}
213
-
 
214
 
215
  class INSTAGRAM:
216
  def __init__(self, url):
@@ -220,10 +220,27 @@ class INSTAGRAM:
220
  return bool((re.compile(r"^https?://(?:www\.)?instagram\.com/")).match(self.url))
221
 
222
  def get_media(self):
 
223
  try:
224
  return httpx.post(
225
- f"https://api.qewertyy.dev/downloaders/instagram?url={self.url}"
 
226
  ).json()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  except Exception as e:
228
  LOGGER.error(e)
229
  LOGGER.error(format_exc())
 
6
 
7
  from Powers import *
8
 
 
9
  # import requests
10
  # from selenium import webdriver
11
  # from selenium.webdriver.chrome.options import Options
 
209
 
210
  # else:
211
  # return {}
212
+ curr_timeout = 20
213
+ timeout = httpx.Timeout(curr_timeout)
214
 
215
  class INSTAGRAM:
216
  def __init__(self, url):
 
220
  return bool((re.compile(r"^https?://(?:www\.)?instagram\.com/")).match(self.url))
221
 
222
  def get_media(self):
223
+ global curr_timeout
224
  try:
225
  return httpx.post(
226
+ f"https://api.qewertyy.dev/downloaders/instagram?url={self.url}",
227
+ timeout=timeout
228
  ).json()
229
+ except httpx.ReadTimeout:
230
+ try:
231
+ curr_timeout += 10
232
+ timeout = httpx.Timeout(curr_timeout)
233
+ return httpx.post(
234
+ f"https://api.qewertyy.dev/downloaders/instagram?url={self.url}",
235
+ timeout=timeout
236
+ ).json()
237
+ except httpx.ReadTimeout:
238
+ return {"code": 69, "message": "Please retry after few seconds"}
239
+ except Exception as e:
240
+ LOGGER.error(e)
241
+ LOGGER.error(format_exc())
242
+ return {"code": 69, "message": e}
243
+
244
  except Exception as e:
245
  LOGGER.error(e)
246
  LOGGER.error(format_exc())
Procfile CHANGED
@@ -1 +1 @@
1
- worker: pip install --upgrade pip setuptools wheel && pip install -r requirements.txt && python3 -m Powers
 
1
+ worker: python3 -m Powers
requirements.txt CHANGED
@@ -1,25 +1,26 @@
1
- aiofiles==23.2.1
2
  apscheduler==3.10.4
3
  asyncio==3.4.3
4
  beautifulsoup4==4.12.3
5
  cachetools==5.2.0
6
  captcha==0.6.0
7
- certifi==2024.7.4
8
  charset-normalizer==3.4.0
9
  dnspython==2.6.1
10
  google==3.0.0
11
  gpytranslate==1.5.1
12
- httpx
13
  lyricsgenius==3.0.1
14
  pillow == 10.3.0
 
15
  lxml==4.9.1
16
  pillow == 10.3.0
17
  prettyconf==2.2.1
18
  pyaes==1.6.1
19
  pymongo==4.6.3
20
- git+https://github.com/KurimuzonAkuma/[email protected].32
21
  pysocks==1.7.1
22
- python-dateutil==2.8.2
23
  pytube==15.0.0
24
  pytz==2024.1
25
  pyyaml==6.0.2
@@ -34,7 +35,7 @@ soupsieve==2.4
34
  tgcrypto==1.2.5
35
  tswift==0.7.0
36
  typing-extensions
37
- ujson==5.8.0
38
  Unidecode
39
  wikipedia==1.4.0
40
  youtube-search-python==1.6.6
 
1
+ aiofiles==24.1.0
2
  apscheduler==3.10.4
3
  asyncio==3.4.3
4
  beautifulsoup4==4.12.3
5
  cachetools==5.2.0
6
  captcha==0.6.0
7
+ certifi==2024.12.14
8
  charset-normalizer==3.4.0
9
  dnspython==2.6.1
10
  google==3.0.0
11
  gpytranslate==1.5.1
12
+ httpx==0.27.2
13
  lyricsgenius==3.0.1
14
  pillow == 10.3.0
15
+ lottie==0.7.1
16
  lxml==4.9.1
17
  pillow == 10.3.0
18
  prettyconf==2.2.1
19
  pyaes==1.6.1
20
  pymongo==4.6.3
21
+ git+https://github.com/KurimuzonAkuma/[email protected].34
22
  pysocks==1.7.1
23
+ python-dateutil==2.9.0.post0
24
  pytube==15.0.0
25
  pytz==2024.1
26
  pyyaml==6.0.2
 
35
  tgcrypto==1.2.5
36
  tswift==0.7.0
37
  typing-extensions
38
+ ujson==5.10.0
39
  Unidecode
40
  wikipedia==1.4.0
41
  youtube-search-python==1.6.6