warp-beacon 2.8.19__py3-none-any.whl → 2.8.21__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- __version__ = "2.8.19"
1
+ __version__ = "2.8.21"
2
2
 
@@ -51,18 +51,16 @@ class XAbstract(ScraperAbstract):
51
51
  except urllib3.exceptions.ProxyError as e:
52
52
  logging.warning("Proxy error!")
53
53
  raise BadProxy(extract_exception_message(e.original_error))
54
+ except playwright.sync_api.TimeoutError as e:
55
+ logging.warning("Plawright timeout error", exc_info=e)
56
+ raise BadProxy("Content unvailable")
54
57
  except (socket.timeout,
55
58
  ssl.SSLError,
56
59
  http.client.IncompleteRead,
57
60
  http.client.HTTPException,
58
61
  requests.RequestException,
59
62
  urllib.error.URLError,
60
- urllib.error.HTTPError,
61
- playwright.sync_api.TimeoutError) as e:
62
- if hasattr(e, "code") and (int(e.code) == 403 or int(e.code) == 400):
63
- raise Unavailable(extract_exception_message(e))
64
- if hasattr(e, "reason") and "Remote end closed connection without response" in str(e.reason):
65
- raise Unavailable(extract_exception_message(e))
63
+ urllib.error.HTTPError) as e:
66
64
  logging.warning("X read timeout! Retrying in '%d' seconds ...", pause_secs)
67
65
  logging.info("Your `X_MAX_RETRIES` values is '%d'", max_retries)
68
66
  logging.exception(extract_exception_message(e))
@@ -135,5 +133,9 @@ class XAbstract(ScraperAbstract):
135
133
 
136
134
  def download(self, job: DownloadJob) -> list:
137
135
  self.job = job
138
- ret = self.download_hndlr(self._download, job.url)
136
+ ret = []
137
+ try:
138
+ ret = self.download_hndlr(self._download, job.url)
139
+ except playwright.errors.TimeoutError as e:
140
+ pass
139
141
  return ret
@@ -414,39 +414,48 @@ class InstagramScraper(ScraperAbstract):
414
414
 
415
415
  def email_challenge_resolver(self, username: str) -> Optional[str]:
416
416
  logging.info("Started email challenge resolver")
417
- mail = imaplib.IMAP4_SSL(self.account.get("imap_server", "imap.bagrintsev.me"))
418
- mail.login(self.account.get("imap_login", ""), self.account.get("imap_password", "")) # email server creds
419
- mail.select("inbox")
420
- _, data = mail.search(None, "(UNSEEN)")
421
- ids = data.pop().split()
422
- for num in reversed(ids):
423
- mail.store(num, "+FLAGS", "\\Seen") # mark as read
424
- _, data = mail.fetch(num, "(RFC822)")
425
- msg = email.message_from_string(data[0][1].decode())
426
- payloads = msg.get_payload()
427
- if not isinstance(payloads, list):
428
- payloads = [msg]
429
- code = None
430
- for payload in payloads:
431
- body = ''
417
+ try:
418
+ mail = imaplib.IMAP4_SSL(self.account.get("imap_server", "imap.bagrintsev.me"))
419
+ mail.login(self.account.get("imap_login", ""), self.account.get("imap_password", "")) # email server creds
420
+ mail.select("inbox")
421
+ _, data = mail.search(None, "(UNSEEN)")
422
+ ids = data.pop().split()
423
+ for num in reversed(ids):
424
+ mail.store(num, "+FLAGS", "\\Seen") # mark as read
425
+ _, data = mail.fetch(num, "(RFC822)")
426
+ msg, payloads = "", None
432
427
  try:
433
- body = payload.get_payload(decode=True).decode()
428
+ msg = email.message_from_string(data[0][1].decode())
429
+ payloads = msg.get_payload()
434
430
  except:
431
+ logging.error("Failed to parse imap message!")
435
432
  continue
436
- if "<div" not in body:
437
- continue
438
- match = re.search(">([^>]*?({u})[^<]*?)<".format(u=username), body)
439
- if not match:
440
- continue
441
- logging.info("Match from email: '%s'", match.group(1))
442
- match = re.search(r">(\d{6})<", body)
443
- if not match:
444
- logging.info('Skip this email, "code" not found')
445
- continue
446
- code = match.group(1)
447
- if code:
448
- logging.info("Found IG code at mail server: '%s'", code)
449
- return code
433
+ if not isinstance(payloads, list):
434
+ payloads = [msg]
435
+ code = None
436
+ for payload in payloads:
437
+ body = ''
438
+ try:
439
+ body = payload.get_payload(decode=True).decode()
440
+ except:
441
+ continue
442
+ if "<div" not in body:
443
+ continue
444
+ match = re.search(">([^>]*?({u})[^<]*?)<".format(u=username), body)
445
+ if not match:
446
+ continue
447
+ logging.info("Match from email: '%s'", match.group(1))
448
+ match = re.search(r">(\d{6})<", body)
449
+ if not match:
450
+ logging.info('Skip this email, "code" not found')
451
+ continue
452
+ code = match.group(1)
453
+ if code:
454
+ logging.info("Found IG code at mail server: '%s'", code)
455
+ return code
456
+ except Exception as e:
457
+ logging.error("Failed to scan IMAP folder")
458
+ logging.exception(e)
450
459
  return None
451
460
 
452
461
  def get_code_from_sms(self, username: str) -> Optional[str]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.8.19
3
+ Version: 2.8.21
4
4
  Summary: Telegram bot for expanding external media links
5
5
  Home-page: https://github.com/sb0y/warp_beacon
6
6
  Author: Andrey Bagrintsev
@@ -4,7 +4,7 @@ var/warp_beacon/accounts.json,sha256=OsXdncs6h88xrF_AP6_WDCK1waGBn9SR-uYdIeK37GM
4
4
  var/warp_beacon/placeholder.gif,sha256=cE5CGJVaop4Sx21zx6j4AyoHU0ncmvQuS2o6hJfEH88,6064
5
5
  var/warp_beacon/proxies.json,sha256=VnjlQDXumOEq72ZFjbh6IqHS1TEHqn8HPYAZqWCeSIA,95
6
6
  warp_beacon/__init__.py,sha256=_rThNODmz0nDp_n4mWo_HKaNFE5jk1_7cRhHyYaencI,163
7
- warp_beacon/__version__.py,sha256=XSMSoO6-Xrhn1QRbcDgMh-JiO-m7xTmSjIQV2mVGsOY,24
7
+ warp_beacon/__version__.py,sha256=OoP7JWw08RuSXfbs45tI-BeknE2njgBbTOPps7QY6eI,24
8
8
  warp_beacon/warp_beacon.py,sha256=ADCR30uGXIsDrt9WoiI9Ghu2QtWs0qZIK6x3pQKM_B4,1109
9
9
  warp_beacon/yt_auth.py,sha256=GUTKqYr_tzDC-07Lx_ahWXSag8EyLxXBUnQbDBIkEmk,6022
10
10
  warp_beacon/compress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -31,11 +31,11 @@ warp_beacon/scraper/link_resolver.py,sha256=Rc9ZuMyOo3iPywDHwjngy-WRQ2SXhJwxcg-5
31
31
  warp_beacon/scraper/utils.py,sha256=AOZmDki2Pbr84IG-j_wN2UghKCiWFVDYdx6HJl0JTBs,1258
32
32
  warp_beacon/scraper/X/X.py,sha256=F-X2JdAoGNkXGX_zzzWimvJ_iHzBkp0PU7D5mt0wWBM,9184
33
33
  warp_beacon/scraper/X/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- warp_beacon/scraper/X/abstract.py,sha256=pCzZPTCtn8pRbBx2SeuBUpMkEHqnOLtwLBAHYceL12Q,5475
34
+ warp_beacon/scraper/X/abstract.py,sha256=JhaW2pbDK4fY4PeC4YiPcrNuIMjrVLMWwGBAe0LjC9U,5380
35
35
  warp_beacon/scraper/X/types.py,sha256=RrAyODNA8WA0YzznOSK2wr-hstXf3BnEisy06uL-bdA,132
36
36
  warp_beacon/scraper/instagram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  warp_beacon/scraper/instagram/captcha.py,sha256=9UYziuqB3Tsat_ET6ex-cnZDbi6yCnsXHSpmE8MuUHk,4651
38
- warp_beacon/scraper/instagram/instagram.py,sha256=uzqUCVniRa3d9uavoMAz9-9MHvYOh7n_G7UyfgzHgAk,19154
38
+ warp_beacon/scraper/instagram/instagram.py,sha256=Cp-_o2k3UJC_HpA_FCbC_c0bkt8nIYfAMqR4wSQxOhA,19408
39
39
  warp_beacon/scraper/instagram/wb_instagrapi.py,sha256=piPtcN3pB_obsaPX36Sdm2JxEM7d99ZUTwsd4fJY2B4,11544
40
40
  warp_beacon/scraper/youtube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  warp_beacon/scraper/youtube/abstract.py,sha256=7CVR2fW6bpWYYKcveRddd6XlgDsfV_Pp3dqV2LpefSc,16088
@@ -56,9 +56,9 @@ warp_beacon/telegram/progress_file_reader.py,sha256=e3equyNKlKs764AD-iE9QRsh3YDH
56
56
  warp_beacon/telegram/types.py,sha256=Kvdng6uCF1HRoqQgGW1ZYYPJoVuYkFb-LDvMBbW5Hjk,89
57
57
  warp_beacon/telegram/utils.py,sha256=zTF8VQfAWetBSjAPbmNe_Zi_LN5fAcWptJKjLaFNHaE,5073
58
58
  warp_beacon/uploader/__init__.py,sha256=qbjl6PhnLxYr-fXsL-EzL8XwmUDDSHb3DrSL-rs1sjo,4894
59
- warp_beacon-2.8.19.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
60
- warp_beacon-2.8.19.dist-info/METADATA,sha256=D3NM6ZS60BxoEbOpbSEm0Yf9Jc7kXZS3ABI4FTeLuK8,23236
61
- warp_beacon-2.8.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
- warp_beacon-2.8.19.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
63
- warp_beacon-2.8.19.dist-info/top_level.txt,sha256=RraB0PWGvRK2zPYkuICKNgStLG1C5s7rPHHJEHJbkgA,1510
64
- warp_beacon-2.8.19.dist-info/RECORD,,
59
+ warp_beacon-2.8.21.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
60
+ warp_beacon-2.8.21.dist-info/METADATA,sha256=45L8EX-WVBJPUqSOpyz0cFH-gL2AKA-2hNz-c1EMqbE,23236
61
+ warp_beacon-2.8.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
+ warp_beacon-2.8.21.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
63
+ warp_beacon-2.8.21.dist-info/top_level.txt,sha256=RraB0PWGvRK2zPYkuICKNgStLG1C5s7rPHHJEHJbkgA,1510
64
+ warp_beacon-2.8.21.dist-info/RECORD,,