warp-beacon 2.7.29__py3-none-any.whl → 2.7.31__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.7.29"
1
+ __version__ = "2.7.31"
2
2
 
@@ -75,16 +75,23 @@ class InstagramHuman(object):
75
75
  if not raw_tray:
76
76
  logging.info("No stories tray available.")
77
77
  return
78
- logging.info("raw_tray: %s", str(raw_tray))
78
+ #logging.info("raw_tray: %s", str(raw_tray))
79
79
  tray = raw_tray.get("tray", [])
80
- for user_story in tray:
81
- user = user_story["user"]
82
- user_id = user["pk"]
83
- _stories = self.scrapler.download_hndlr(self.scrapler.cl.user_stories, user_id)
84
- self.operations_count += 1
85
- if _stories:
86
- stories.extend(_stories)
87
- self.random_pause()
80
+ if tray:
81
+ reels_tray = []
82
+ target_len = random.randint(1, 5)
83
+ for el in tray[:target_len]:
84
+ user = el["user"]
85
+ user_id = user["pk"]
86
+ if el.get("seen", 0) == 0:
87
+ reels_tray.append({"user_id": user_id})
88
+
89
+ for el in reels_tray:
90
+ _stories = self.scrapler.download_hndlr(self.scrapler.cl.user_stories, el["user_id"])
91
+ self.operations_count += 1
92
+ if _stories:
93
+ stories.extend(_stories)
94
+ self.random_pause()
88
95
 
89
96
  if not stories:
90
97
  return
@@ -79,8 +79,6 @@ class AsyncDownloader(object):
79
79
 
80
80
  def try_next_account(self, selector: AccountSelector, job: DownloadJob, report_error: str = None) -> None:
81
81
  logging.warning("Switching account!")
82
- if job.account_switches > self.acc_selector.count_service_accounts(job.job_origin):
83
- raise AllAccountsFailed("All config accounts failed!", job=job, reason=report_error)
84
82
  if report_error:
85
83
  selector.bump_acc_fail(report_error)
86
84
  selector.next()
@@ -112,6 +110,9 @@ class AsyncDownloader(object):
112
110
  replay=True
113
111
  ))
114
112
  continue
113
+
114
+ if job.account_switches > self.acc_selector.count_service_accounts(job.job_origin):
115
+ raise AllAccountsFailed("All config accounts failed!", job=job)
115
116
  if not job.in_process:
116
117
  if job.job_postponed_until > 0:
117
118
  if (job.job_postponed_until - time.time()) > 0:
@@ -403,7 +404,6 @@ class AsyncDownloader(object):
403
404
  else:
404
405
  logging.info("Job already in work in parallel worker. Redirecting job to upload worker.")
405
406
  self.uploader.queue_task(job.to_upload_job())
406
-
407
407
  except AllAccountsFailed as e:
408
408
  self.send_message_to_admin(
409
409
  f"Task <code>{job.job_id}</code> failed. URL: '{job.url}'. Reason: '<b>AllAccountsFailed</b>'."
@@ -28,13 +28,14 @@ class FailHandler(object):
28
28
  logging.exception(e)
29
29
  return db_id
30
30
 
31
- def get_failed_jobs(self) -> list:
31
+ def get_failed_jobs(self, clean: bool = True) -> list:
32
32
  ret = []
33
33
  try:
34
34
  cursor = self.db.find()
35
35
  for document in cursor:
36
36
  ret.append(pickle.loads(document["job_data"]))
37
- self.db.delete_many({})
37
+ if clean:
38
+ self.db.delete_many({})
38
39
  except Exception as e:
39
40
  logging.error("Failed to get failed jobs!")
40
41
  logging.exception(e)
@@ -1,6 +1,7 @@
1
- import os
1
+ import logging
2
+
2
3
  from pyrogram import Client
3
- from pyrogram.types import Message, CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup
4
+ from pyrogram.types import Message, CallbackQuery#, InlineKeyboardButton, InlineKeyboardMarkup
4
5
  from pyrogram.enums import ChatType, ParseMode
5
6
  from pyrogram.types import BotCommand
6
7
 
@@ -13,8 +14,8 @@ from warp_beacon.jobs.upload_job import UploadJob
13
14
  from warp_beacon.jobs import Origin
14
15
  from warp_beacon.jobs.types import JobType
15
16
  from warp_beacon.scraper.link_resolver import LinkResolver
16
-
17
- import logging
17
+ from warp_beacon.scraper.fail_handler import FailHandler
18
+ from warp_beacon.storage.mongo import DBClient
18
19
 
19
20
  class Handlers(object):
20
21
  storage = None
@@ -24,6 +25,12 @@ class Handlers(object):
24
25
  def __init__(self, bot: "Bot") -> None:
25
26
  self.bot = bot
26
27
  self.storage = bot.storage
28
+ # add uploader callbacks to handle service restart
29
+ for job in FailHandler(DBClient()).get_failed_jobs(clean=False):
30
+ self.bot.uploader.add_callback(
31
+ job.placeholder_message_id,
32
+ self.upload_wrapper
33
+ )
27
34
 
28
35
  async def help(self, _: Client, message: Message) -> None:
29
36
  """Send a message when the command /help is issued."""
@@ -50,10 +50,11 @@ class AsyncUploader(object):
50
50
  self.threads.append(thread)
51
51
 
52
52
  def add_callback(self, message_id: int, callback: Callable) -> None:
53
- async def callback_wrap(*args, **kwargs) -> None:
54
- await callback(*args, **kwargs)
55
- #self.remove_callback(message_id)
56
- self.callbacks[message_id] = {"callback": callback_wrap}
53
+ if message_id not in self.callbacks:
54
+ async def callback_wrap(*args, **kwargs) -> None:
55
+ await callback(*args, **kwargs)
56
+ #self.remove_callback(message_id)
57
+ self.callbacks[message_id] = {"callback": callback_wrap}
57
58
 
58
59
  def remove_callback(self, message_id: int) -> None:
59
60
  if message_id in self.callbacks:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.7.29
3
+ Version: 2.7.31
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=_LmRNGKODzASrCmjGEfNEDs3DOuePsYcW-NkrlBYlMQ,24
7
+ warp_beacon/__version__.py,sha256=1yyk4aKxhgTdmz7ZQA7_49PVJ9hCdQw1x0iVp7PFoDA,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
@@ -20,13 +20,13 @@ warp_beacon/mediainfo/audio.py,sha256=ous88kwQj4bDIChN5wnGil5LqTs0IQHH0d-nyrL0-Z
20
20
  warp_beacon/mediainfo/silencer.py,sha256=qxMuViOoVwUYb60uCVvqHiGrqByR1_4_rqMT-XdMkwc,1813
21
21
  warp_beacon/mediainfo/video.py,sha256=UBZrhTN5IDI-aYu6tsJEILo9nFkjHhkldGVFmvV7tEI,2480
22
22
  warp_beacon/scheduler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- warp_beacon/scheduler/instagram_human.py,sha256=GHzATkWSGpxfXCFSCL3zW8m7GXaaPf8kP6Bk3NuwfzU,12360
23
+ warp_beacon/scheduler/instagram_human.py,sha256=OMv8PbJ6ITa7VqAvhgn97fjdSjBnFdY3T1DLhPhbwT4,12547
24
24
  warp_beacon/scheduler/scheduler.py,sha256=Bf4sGXjX75Dox3q-yzUHhagtzUAj3hl5GzfnZya-_io,4995
25
- warp_beacon/scraper/__init__.py,sha256=i5R8nI0qE8c63lC4vVmggepsNr6-PNI2tPLR9UmcnXI,20534
25
+ warp_beacon/scraper/__init__.py,sha256=rcI8hYeXZPfmINwK_yB2pUmPtWh_BfrEF1IYVg5-67w,20520
26
26
  warp_beacon/scraper/abstract.py,sha256=pWbaTu-gDZgi-iFjqMR_uGzPl5KLv-4gTdJ9w6cD4sk,3802
27
27
  warp_beacon/scraper/account_selector.py,sha256=ixdFN8sCyFPL_WTzer2pur0Ak3pH4Ih0P90qOM8_f9Y,10077
28
28
  warp_beacon/scraper/exceptions.py,sha256=EKwoF0oH2xZWbNU-v8DOaWK5skKwa3s1yTIBdlcfMpc,1452
29
- warp_beacon/scraper/fail_handler.py,sha256=zcPK3ZVEsu6JmHYcWP7L3naTRK3gWFVRkpP84VBOtJs,964
29
+ warp_beacon/scraper/fail_handler.py,sha256=5ODu4b8ndZWAcHIXrcUufsWFihetzNUoAi8IgAkreyQ,998
30
30
  warp_beacon/scraper/link_resolver.py,sha256=Rc9ZuMyOo3iPywDHwjngy-WRQ2SXhJwxcg-5ripx7tM,2447
31
31
  warp_beacon/scraper/utils.py,sha256=AOZmDki2Pbr84IG-j_wN2UghKCiWFVDYdx6HJl0JTBs,1258
32
32
  warp_beacon/scraper/instagram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -45,16 +45,16 @@ warp_beacon/telegram/bot.py,sha256=HJxouCxc85EzC8lTaqnP-5agvkdvlxKR6Etg5LjYcoA,1
45
45
  warp_beacon/telegram/caption_shortener.py,sha256=EnguNCF52ne7y4P-iJAbI6K3sqoJqJbND_dX5Fhwkv0,1549
46
46
  warp_beacon/telegram/download_status.py,sha256=N-Qg13LVcPskyQNKG1lw50K1lhFtXu003muCRzZ7wiE,1561
47
47
  warp_beacon/telegram/edit_message.py,sha256=6DX8eJV70MG_b79WbuJG55qLBs66boElzYdCr8zpMeI,5380
48
- warp_beacon/telegram/handlers.py,sha256=PaO90370v-S90nwr4PYMzrlHRFBU0VBO6YkqDqTbnjw,9634
48
+ warp_beacon/telegram/handlers.py,sha256=MjferRTVEjBvVQBbIs3Usuxbc-tFtCA5TL1YQSgSy58,9945
49
49
  warp_beacon/telegram/placeholder_message.py,sha256=wN9-BRiyrtHG-EvXtZkGJHt2CX71munQ57ITttjt0mw,6400
50
50
  warp_beacon/telegram/progress_bar.py,sha256=IP4xtvLtdJtqdr2C-0YaU428iQGrKurbP4Npr31iW74,5014
51
51
  warp_beacon/telegram/progress_file_reader.py,sha256=e3equyNKlKs764AD-iE9QRsh3YDHTzP78Mx5tdvPPWs,969
52
52
  warp_beacon/telegram/types.py,sha256=Kvdng6uCF1HRoqQgGW1ZYYPJoVuYkFb-LDvMBbW5Hjk,89
53
53
  warp_beacon/telegram/utils.py,sha256=S1N_JbHM_ExiM5tS0CeYKWIlvaJMlyq85TQNbK_GVds,5029
54
- warp_beacon/uploader/__init__.py,sha256=ewvR60k9osJxw_kb5U-TlZkCGR_574biq3w_aR1tjIU,5689
55
- warp_beacon-2.7.29.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
56
- warp_beacon-2.7.29.dist-info/METADATA,sha256=bCy0h-Ft5baiFpToIipdqsjE-1Ex4e2c4VCnC-i-2Pk,23215
57
- warp_beacon-2.7.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
58
- warp_beacon-2.7.29.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
59
- warp_beacon-2.7.29.dist-info/top_level.txt,sha256=5YQRN46STNg81V_3jdzZ6bftkMxhe1hTPSFvJugDu84,1405
60
- warp_beacon-2.7.29.dist-info/RECORD,,
54
+ warp_beacon/uploader/__init__.py,sha256=1enK6qMWaTZEaK456JwaKOfvCvznHA8cjgceOsrF6Po,5732
55
+ warp_beacon-2.7.31.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
56
+ warp_beacon-2.7.31.dist-info/METADATA,sha256=KZ1ph06Yl2PO6n5z3eXttmAgTan8qYfFnRsLEZTx0aE,23215
57
+ warp_beacon-2.7.31.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
58
+ warp_beacon-2.7.31.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
59
+ warp_beacon-2.7.31.dist-info/top_level.txt,sha256=5YQRN46STNg81V_3jdzZ6bftkMxhe1hTPSFvJugDu84,1405
60
+ warp_beacon-2.7.31.dist-info/RECORD,,