warp-beacon 2.8.2__tar.gz → 2.8.4__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.4}/PKG-INFO +1 -1
  2. warp_beacon-2.8.4/warp_beacon/__version__.py +2 -0
  3. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scheduler/instagram_human.py +2 -2
  4. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/X/X.py +33 -14
  5. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/X/abstract.py +1 -1
  6. {warp_beacon-2.8.2 → warp_beacon-2.8.4/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.4}/LICENSE +0 -0
  9. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/MANIFEST.in +0 -0
  10. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/README.md +0 -0
  11. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/assets/cc-group-black.png +0 -0
  12. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/assets/placeholder.gif +0 -0
  13. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/etc/.gitignore +0 -0
  14. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/etc/accounts.json +0 -0
  15. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/etc/proxies.json +0 -0
  16. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/etc/warp_beacon.conf +0 -0
  17. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/etc/warp_beacon.service +0 -0
  18. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/pyproject.toml +0 -0
  19. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/setup.cfg +0 -0
  20. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/setup.py +0 -0
  21. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/__init__.py +0 -0
  22. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/compress/__init__.py +0 -0
  23. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/compress/video.py +0 -0
  24. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/jobs/__init__.py +0 -0
  25. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/jobs/abstract.py +0 -0
  26. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/jobs/download_job.py +0 -0
  27. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/jobs/types.py +0 -0
  28. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/jobs/upload_job.py +0 -0
  29. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/mediainfo/__init__.py +0 -0
  30. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/mediainfo/abstract.py +0 -0
  31. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/mediainfo/audio.py +0 -0
  32. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/mediainfo/silencer.py +0 -0
  33. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/mediainfo/video.py +0 -0
  34. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scheduler/__init__.py +0 -0
  35. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scheduler/scheduler.py +0 -0
  36. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/X/__init__.py +0 -0
  37. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/X/types.py +0 -0
  38. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/__init__.py +0 -0
  39. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/abstract.py +0 -0
  40. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/account_selector.py +0 -0
  41. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/exceptions.py +0 -0
  42. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/fail_handler.py +0 -0
  43. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/instagram/__init__.py +0 -0
  44. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/instagram/captcha.py +0 -0
  45. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/instagram/instagram.py +0 -0
  46. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/instagram/wb_instagrapi.py +0 -0
  47. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/link_resolver.py +0 -0
  48. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/utils.py +0 -0
  49. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/youtube/__init__.py +0 -0
  50. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/youtube/abstract.py +0 -0
  51. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/youtube/music.py +0 -0
  52. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/youtube/shorts.py +0 -0
  53. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/scraper/youtube/youtube.py +0 -0
  54. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/storage/__init__.py +0 -0
  55. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/storage/mongo.py +0 -0
  56. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/__init__.py +0 -0
  57. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/bot.py +0 -0
  58. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/caption_shortener.py +0 -0
  59. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/download_status.py +0 -0
  60. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/edit_message.py +0 -0
  61. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/handlers.py +0 -0
  62. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/placeholder_message.py +0 -0
  63. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/progress_bar.py +0 -0
  64. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/progress_file_reader.py +0 -0
  65. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/types.py +0 -0
  66. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/telegram/utils.py +0 -0
  67. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/uploader/__init__.py +0 -0
  68. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/warp_beacon.py +0 -0
  69. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon/yt_auth.py +0 -0
  70. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon.egg-info/SOURCES.txt +0 -0
  71. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon.egg-info/dependency_links.txt +0 -0
  72. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon.egg-info/entry_points.txt +0 -0
  73. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/warp_beacon.egg-info/requires.txt +0 -0
  74. {warp_beacon-2.8.2 → warp_beacon-2.8.4}/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.4
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.4"
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
 
@@ -197,6 +214,7 @@ class XScraper(XAbstract):
197
214
  "username": parsed.username,
198
215
  "password": parsed.password
199
216
  }
217
+ logging.info("[X] build proxy: %s", proxy)
200
218
 
201
219
  with sync_playwright() as p:
202
220
  with p.chromium.launch(headless=True) as browser:
@@ -206,8 +224,9 @@ class XScraper(XAbstract):
206
224
 
207
225
  #page.wait_for_timeout(3000)
208
226
  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))
210
- text = text_element.inner_text()
227
+ text_element = page.query_selector('[data-testid="tweetText"]')
228
+ if text_element:
229
+ text = text_element.inner_text()
211
230
 
212
231
  image_elements = page.query_selector_all("img")
213
232
  image_urls = []
@@ -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.4
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