warp-beacon 2.2.18__tar.gz → 2.2.20__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 (54) hide show
  1. {warp_beacon-2.2.18/warp_beacon.egg-info → warp_beacon-2.2.20}/PKG-INFO +1 -1
  2. warp_beacon-2.2.20/warp_beacon/__version__.py +2 -0
  3. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/instagram/instagram.py +4 -0
  4. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/youtube/abstract.py +13 -14
  5. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/telegram/bot.py +2 -2
  6. {warp_beacon-2.2.18 → warp_beacon-2.2.20/warp_beacon.egg-info}/PKG-INFO +1 -1
  7. warp_beacon-2.2.18/warp_beacon/__version__.py +0 -2
  8. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/LICENSE +0 -0
  9. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/MANIFEST.in +0 -0
  10. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/README.md +0 -0
  11. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/assets/placeholder.gif +0 -0
  12. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/etc/.gitignore +0 -0
  13. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/etc/accounts.json +0 -0
  14. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/etc/warp_beacon.conf +0 -0
  15. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/etc/warp_beacon.service +0 -0
  16. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/pyproject.toml +0 -0
  17. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/setup.cfg +0 -0
  18. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/setup.py +0 -0
  19. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/__init__.py +0 -0
  20. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/compress/__init__.py +0 -0
  21. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/compress/video.py +0 -0
  22. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/jobs/__init__.py +0 -0
  23. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/jobs/abstract.py +0 -0
  24. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/jobs/download_job.py +0 -0
  25. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/jobs/types.py +0 -0
  26. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/jobs/upload_job.py +0 -0
  27. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/mediainfo/__init__.py +0 -0
  28. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/mediainfo/abstract.py +0 -0
  29. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/mediainfo/audio.py +0 -0
  30. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/mediainfo/silencer.py +0 -0
  31. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/mediainfo/video.py +0 -0
  32. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scheduler/__init__.py +0 -0
  33. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scheduler/scheduler.py +0 -0
  34. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/__init__.py +0 -0
  35. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/abstract.py +0 -0
  36. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/account_selector.py +0 -0
  37. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/exceptions.py +0 -0
  38. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/instagram/__init__.py +0 -0
  39. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/youtube/__init__.py +0 -0
  40. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/youtube/music.py +0 -0
  41. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/youtube/shorts.py +0 -0
  42. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/scraper/youtube/youtube.py +0 -0
  43. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/storage/__init__.py +0 -0
  44. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/telegram/__init__.py +0 -0
  45. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/telegram/handlers.py +0 -0
  46. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/telegram/placeholder_message.py +0 -0
  47. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/telegram/utils.py +0 -0
  48. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/uploader/__init__.py +0 -0
  49. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon/warp_beacon.py +0 -0
  50. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon.egg-info/SOURCES.txt +0 -0
  51. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon.egg-info/dependency_links.txt +0 -0
  52. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon.egg-info/entry_points.txt +0 -0
  53. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon.egg-info/requires.txt +0 -0
  54. {warp_beacon-2.2.18 → warp_beacon-2.2.20}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: warp_beacon
3
- Version: 2.2.18
3
+ Version: 2.2.20
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.2.20"
2
+
@@ -89,6 +89,7 @@ class InstagramScraper(ScraperAbstract):
89
89
  self.load_session()
90
90
  self._download_hndlr(self.cl.get_timeline_feed)
91
91
  self._download_hndlr(self.cl.get_reels_tray_feed)
92
+ self.safe_write_session()
92
93
 
93
94
  def scrap(self, url: str) -> tuple[str]:
94
95
  self.load_session()
@@ -283,6 +284,9 @@ class InstagramScraper(ScraperAbstract):
283
284
  raise NotFound(extract_exception_message(e))
284
285
  except IGUnknownError as e:
285
286
  raise UnknownError(extract_exception_message(e))
287
+
288
+ self.safe_write_session()
289
+
286
290
  return res
287
291
 
288
292
  def email_challenge_resolver(self, username: str) -> Optional[str]:
@@ -104,30 +104,26 @@ class YoutubeAbstract(ScraperAbstract):
104
104
  os.unlink("%s/%s" % (self.DOWNLOAD_DIR, i))
105
105
 
106
106
  def calculate_size_with_padding(self, image: Image, aspect_ratio_width: int, aspect_ratio_height: int, target_size: tuple=(320, 320), background_color: tuple=(0, 0, 0)) -> Image:
107
- # aspect ratio
108
107
  aspect_ratio = aspect_ratio_width / aspect_ratio_height
109
-
110
- # Target size
111
108
  target_width, target_height = target_size
112
-
113
- # Calculate start sizes bases on min height
109
+
114
110
  height = target_height
115
111
  width = int(height * aspect_ratio)
116
-
117
- # reduce width if target width exceeds
112
+
118
113
  if width > target_width:
119
114
  width = target_width
120
115
  height = int(width / aspect_ratio)
121
-
122
- # create new image with color and size 320x320
116
+
123
117
  new_image = Image.new("RGB", target_size, background_color)
124
-
125
- # Рассчитываем позицию для центрирования изображения на подложке
118
+ image.thumbnail(target_size, Image.Resampling.LANCZOS)
119
+
120
+ if aspect_ratio_height > 4:
121
+ image = image.resize((image.size[0], image.size[1]+new_image.size[1]))
122
+ height += new_image.size[1] - 20
123
+
126
124
  paste_position = ((target_width - width) // 2, (target_height - height) // 2)
127
-
128
- # pasting image to center
129
125
  new_image.paste(image, paste_position)
130
-
126
+
131
127
  return new_image
132
128
 
133
129
  def aspect_ratio(self, size: tuple) -> tuple:
@@ -145,9 +141,12 @@ class YoutubeAbstract(ScraperAbstract):
145
141
  if response.status_code == 200:
146
142
  image = Image.open(io.BytesIO(response.content))
147
143
  ratio = self.aspect_ratio(image.size)
144
+ logging.info("thumb ratio: '%s'", ratio)
148
145
  new_image = self.calculate_size_with_padding(image, ratio[0], ratio[1])
146
+ logging.info("thumb size: '%s'", new_image.size)
149
147
  io_buf = io.BytesIO()
150
148
  new_image.save(io_buf, format='JPEG', subsampling=0, quality=100, progressive=True, optimize=False)
149
+ logging.info("thumb size: %d kb", io_buf.getbuffer().nbytes / 1024)
151
150
  io_buf.seek(0)
152
151
  return io_buf
153
152
  except Exception as e:
@@ -319,8 +319,8 @@ class Bot(object):
319
319
  args["message_id"] = job.placeholder_message_id
320
320
  else:
321
321
  args["disable_notification"] = True
322
- #args["reply_to_message_id"] = job.message_id
323
- args["reply_to_message_id"] = None
322
+ args["reply_to_message_id"] = job.message_id
323
+ #args["reply_to_message_id"] = None
324
324
 
325
325
  if os.environ.get("ENABLE_DONATES", None) == "true" and job.media_type is not JobType.COLLECTION:
326
326
  args["reply_markup"] = InlineKeyboardMarkup([[InlineKeyboardButton("❤ Donate", url=os.environ.get("DONATE_LINK", "https://pay.cryptocloud.plus/pos/W5BMtNQt5bJFoW2E"))]])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: warp_beacon
3
- Version: 2.2.18
3
+ Version: 2.2.20
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.2.18"
2
-
File without changes
File without changes
File without changes
File without changes
File without changes