warp-beacon 2.8.2__tar.gz → 2.8.3__tar.gz

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.
Files changed (74) hide show
  1. {warp_beacon-2.8.2/warp_beacon.egg-info → warp_beacon-2.8.3}/PKG-INFO +1 -1
  2. warp_beacon-2.8.3/warp_beacon/__version__.py +2 -0
  3. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scheduler/instagram_human.py +2 -2
  4. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/X/X.py +31 -14
  5. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/X/abstract.py +1 -1
  6. {warp_beacon-2.8.2 → warp_beacon-2.8.3/warp_beacon.egg-info}/PKG-INFO +1 -1
  7. warp_beacon-2.8.2/warp_beacon/__version__.py +0 -2
  8. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/LICENSE +0 -0
  9. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/MANIFEST.in +0 -0
  10. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/README.md +0 -0
  11. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/assets/cc-group-black.png +0 -0
  12. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/assets/placeholder.gif +0 -0
  13. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/etc/.gitignore +0 -0
  14. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/etc/accounts.json +0 -0
  15. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/etc/proxies.json +0 -0
  16. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/etc/warp_beacon.conf +0 -0
  17. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/etc/warp_beacon.service +0 -0
  18. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/pyproject.toml +0 -0
  19. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/setup.cfg +0 -0
  20. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/setup.py +0 -0
  21. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/__init__.py +0 -0
  22. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/compress/__init__.py +0 -0
  23. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/compress/video.py +0 -0
  24. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/jobs/__init__.py +0 -0
  25. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/jobs/abstract.py +0 -0
  26. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/jobs/download_job.py +0 -0
  27. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/jobs/types.py +0 -0
  28. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/jobs/upload_job.py +0 -0
  29. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/mediainfo/__init__.py +0 -0
  30. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/mediainfo/abstract.py +0 -0
  31. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/mediainfo/audio.py +0 -0
  32. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/mediainfo/silencer.py +0 -0
  33. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/mediainfo/video.py +0 -0
  34. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scheduler/__init__.py +0 -0
  35. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scheduler/scheduler.py +0 -0
  36. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/X/__init__.py +0 -0
  37. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/X/types.py +0 -0
  38. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/__init__.py +0 -0
  39. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/abstract.py +0 -0
  40. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/account_selector.py +0 -0
  41. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/exceptions.py +0 -0
  42. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/fail_handler.py +0 -0
  43. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/instagram/__init__.py +0 -0
  44. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/instagram/captcha.py +0 -0
  45. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/instagram/instagram.py +0 -0
  46. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/instagram/wb_instagrapi.py +0 -0
  47. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/link_resolver.py +0 -0
  48. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/utils.py +0 -0
  49. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/youtube/__init__.py +0 -0
  50. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/youtube/abstract.py +0 -0
  51. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/youtube/music.py +0 -0
  52. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/youtube/shorts.py +0 -0
  53. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/scraper/youtube/youtube.py +0 -0
  54. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/storage/__init__.py +0 -0
  55. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/storage/mongo.py +0 -0
  56. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/__init__.py +0 -0
  57. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/bot.py +0 -0
  58. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/caption_shortener.py +0 -0
  59. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/download_status.py +0 -0
  60. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/edit_message.py +0 -0
  61. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/handlers.py +0 -0
  62. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/placeholder_message.py +0 -0
  63. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/progress_bar.py +0 -0
  64. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/progress_file_reader.py +0 -0
  65. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/types.py +0 -0
  66. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/telegram/utils.py +0 -0
  67. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/uploader/__init__.py +0 -0
  68. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/warp_beacon.py +0 -0
  69. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon/yt_auth.py +0 -0
  70. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon.egg-info/SOURCES.txt +0 -0
  71. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon.egg-info/dependency_links.txt +0 -0
  72. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon.egg-info/entry_points.txt +0 -0
  73. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon.egg-info/requires.txt +0 -0
  74. {warp_beacon-2.8.2 → warp_beacon-2.8.3}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.8.2
3
+ Version: 2.8.3
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
@@ -0,0 +1,2 @@
1
+ __version__ = "2.8.3"
2
+
@@ -151,7 +151,7 @@ class InstagramHuman(object):
151
151
 
152
152
  def scroll_content(self, last_pk: int) -> None:
153
153
  #timeline_initialized = False
154
- if random.random() > 0.5:
154
+ if random.random() > 0.95:
155
155
  #timeline_initialized = True
156
156
  #self.browse_timeline()
157
157
  logging.info("Starting to watch related reels with media_pk '%d'", last_pk)
@@ -159,7 +159,7 @@ class InstagramHuman(object):
159
159
  self.operations_count += 1
160
160
  self.watch_content(media)
161
161
 
162
- if random.random() > 0.7:
162
+ if random.random() > 0.95:
163
163
  time.sleep(random.uniform(2, 20))
164
164
  #if not timeline_initialized:
165
165
  # self.browse_timeline()
@@ -7,6 +7,7 @@ import requests
7
7
  import yt_dlp
8
8
  from playwright.sync_api import sync_playwright
9
9
 
10
+ from warp_beacon.telegram.utils import Utils
10
11
  from warp_beacon.scraper.utils import ScraperUtils
11
12
  from warp_beacon.scraper.X.types import XMediaType
12
13
  from warp_beacon.jobs.types import JobType
@@ -82,24 +83,40 @@ class XScraper(XAbstract):
82
83
  media_type = XMediaType.IMAGE
83
84
  else:
84
85
  raise
85
-
86
+
87
+ images = []
86
88
  if media_type == XMediaType.IMAGE:
87
89
  job_type = JobType.IMAGE
88
90
  images, post_text = self.download_images(url, timeout)
89
91
  if images:
90
- #if len(images) > 1:
91
- # job_type = JobType.COLLECTION
92
- local_file = images[0]
93
-
94
- if local_file:
92
+ if len(images) > 1:
93
+ job_type = JobType.COLLECTION
94
+ else:
95
+ local_file = images[0]
96
+
97
+ if job_type == JobType.COLLECTION:
98
+ chunks = []
99
+ for media_chunk in Utils.chunker(images, 10):
100
+ chunk = []
101
+ for media in media_chunk:
102
+ chunk.append({
103
+ "local_media_path": media,
104
+ "canonical_name": post_text,
105
+ "media_type": JobType.IMAGE
106
+ })
107
+ chunks.append(chunk)
95
108
  res.append({
96
- "local_media_path": local_file,
97
- "performer": media_info.get("uploader", "Unknown"),
98
- 'progress_hooks': [self.dlp_on_progress],
99
- #"thumb": thumbnail,
100
- "canonical_name": post_text,
101
- "media_type": job_type
109
+ "media_type": JobType.COLLECTION,
110
+ "items": chunks
102
111
  })
112
+ else:
113
+ if local_file:
114
+ res.append({
115
+ "local_media_path": local_file,
116
+ "performer": media_info.get("uploader", "Unknown"),
117
+ "canonical_name": post_text,
118
+ "media_type": job_type
119
+ })
103
120
 
104
121
  return res
105
122
 
@@ -200,13 +217,13 @@ class XScraper(XAbstract):
200
217
 
201
218
  with sync_playwright() as p:
202
219
  with p.chromium.launch(headless=True) as browser:
203
- with browser.new_context(proxy=proxy, ignore_https_errors=True) as context:
220
+ with browser.new_context(proxy=proxy) as context:
204
221
  page = context.new_page()
205
222
  page.goto(url, wait_until="networkidle", timeout=(timeout*1000))
206
223
 
207
224
  #page.wait_for_timeout(3000)
208
225
  page.wait_for_selector("img[src*='pbs.twimg.com/media']", timeout=(timeout*1000))
209
- text_element = page.wait_for_selector('[data-testid="tweetText"]', timeout=(timeout*1000))
226
+ text_element = page.query_selector('[data-testid="tweetText"]')
210
227
  text = text_element.inner_text()
211
228
 
212
229
  image_elements = page.query_selector_all("img")
@@ -24,7 +24,7 @@ from warp_beacon.telegram.types import ReportType
24
24
 
25
25
  class XAbstract(ScraperAbstract):
26
26
  DOWNLOAD_DIR = "/tmp"
27
- X_MAX_RETRIES_DEFAULT = 8
27
+ X_MAX_RETRIES_DEFAULT = 2
28
28
  X_PAUSE_BEFORE_RETRY_DEFAULT = 3
29
29
  X_TIMEOUT_DEFAULT = 15
30
30
  X_TIMEOUT_INCREMENT_DEFAULT = 20
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.8.2
3
+ Version: 2.8.3
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
@@ -1,2 +0,0 @@
1
- __version__ = "2.8.2"
2
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes