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.
- warp_beacon/__version__.py +1 -1
- warp_beacon/scraper/X/abstract.py +9 -7
- warp_beacon/scraper/instagram/instagram.py +39 -30
- {warp_beacon-2.8.19.dist-info → warp_beacon-2.8.21.dist-info}/METADATA +1 -1
- {warp_beacon-2.8.19.dist-info → warp_beacon-2.8.21.dist-info}/RECORD +9 -9
- {warp_beacon-2.8.19.dist-info → warp_beacon-2.8.21.dist-info}/WHEEL +0 -0
- {warp_beacon-2.8.19.dist-info → warp_beacon-2.8.21.dist-info}/entry_points.txt +0 -0
- {warp_beacon-2.8.19.dist-info → warp_beacon-2.8.21.dist-info}/licenses/LICENSE +0 -0
- {warp_beacon-2.8.19.dist-info → warp_beacon-2.8.21.dist-info}/top_level.txt +0 -0
warp_beacon/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
__version__ = "2.8.
|
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 =
|
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
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
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
|
-
|
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
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
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]:
|
@@ -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=
|
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=
|
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=
|
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.
|
60
|
-
warp_beacon-2.8.
|
61
|
-
warp_beacon-2.8.
|
62
|
-
warp_beacon-2.8.
|
63
|
-
warp_beacon-2.8.
|
64
|
-
warp_beacon-2.8.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|