warp-beacon 2.2.8__tar.gz → 2.2.10__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.8/warp_beacon.egg-info → warp_beacon-2.2.10}/PKG-INFO +1 -1
  2. warp_beacon-2.2.10/warp_beacon/__version__.py +2 -0
  3. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/storage/__init__.py +16 -3
  4. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/telegram/bot.py +7 -6
  5. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/telegram/handlers.py +17 -4
  6. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/telegram/placeholder_message.py +9 -9
  7. {warp_beacon-2.2.8 → warp_beacon-2.2.10/warp_beacon.egg-info}/PKG-INFO +1 -1
  8. warp_beacon-2.2.8/warp_beacon/__version__.py +0 -2
  9. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/LICENSE +0 -0
  10. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/MANIFEST.in +0 -0
  11. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/README.md +0 -0
  12. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/assets/placeholder.gif +0 -0
  13. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/etc/.gitignore +0 -0
  14. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/etc/accounts.json +0 -0
  15. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/etc/warp_beacon.conf +0 -0
  16. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/etc/warp_beacon.service +0 -0
  17. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/pyproject.toml +0 -0
  18. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/setup.cfg +0 -0
  19. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/setup.py +0 -0
  20. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/__init__.py +0 -0
  21. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/compress/__init__.py +0 -0
  22. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/compress/video.py +0 -0
  23. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/jobs/__init__.py +0 -0
  24. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/jobs/abstract.py +0 -0
  25. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/jobs/download_job.py +0 -0
  26. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/jobs/types.py +0 -0
  27. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/jobs/upload_job.py +0 -0
  28. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/mediainfo/__init__.py +0 -0
  29. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/mediainfo/abstract.py +0 -0
  30. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/mediainfo/audio.py +0 -0
  31. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/mediainfo/silencer.py +0 -0
  32. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/mediainfo/video.py +0 -0
  33. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scheduler/__init__.py +0 -0
  34. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scheduler/scheduler.py +0 -0
  35. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/__init__.py +0 -0
  36. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/abstract.py +0 -0
  37. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/account_selector.py +0 -0
  38. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/exceptions.py +0 -0
  39. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/instagram/__init__.py +0 -0
  40. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/instagram/instagram.py +0 -0
  41. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/youtube/__init__.py +0 -0
  42. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/youtube/abstract.py +0 -0
  43. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/youtube/music.py +0 -0
  44. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/youtube/shorts.py +0 -0
  45. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/scraper/youtube/youtube.py +0 -0
  46. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/telegram/__init__.py +0 -0
  47. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/telegram/utils.py +0 -0
  48. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/uploader/__init__.py +0 -0
  49. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon/warp_beacon.py +0 -0
  50. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon.egg-info/SOURCES.txt +0 -0
  51. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon.egg-info/dependency_links.txt +0 -0
  52. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon.egg-info/entry_points.txt +0 -0
  53. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/warp_beacon.egg-info/requires.txt +0 -0
  54. {warp_beacon-2.2.8 → warp_beacon-2.2.10}/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.8
3
+ Version: 2.2.10
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.10"
2
+
@@ -65,7 +65,13 @@ class Storage(object):
65
65
  logging.debug("uniq_id to search is '%s'", uniq_id)
66
66
  cursor = self.db.find({"uniq_id": uniq_id})
67
67
  for document in cursor:
68
- ret.append({"uniq_id": document["uniq_id"], "tg_file_id": document["tg_file_id"], "media_type": document["media_type"]})
68
+ ret.append(
69
+ {
70
+ "uniq_id": document["uniq_id"],
71
+ "tg_file_id": document["tg_file_id"],
72
+ "media_type": document["media_type"],
73
+ "canonical_name": document.get("canonical_name")
74
+ })
69
75
  except Exception as e:
70
76
  logging.error("Error occurred while trying to read from the database!")
71
77
  logging.exception(e)
@@ -79,7 +85,7 @@ class Storage(object):
79
85
  def db_lookup_id(self, uniq_id: str) -> list[dict]:
80
86
  return self.db_find(uniq_id)
81
87
 
82
- def add_media(self, tg_file_ids: list[str], media_url: str, media_type: str, origin: str) -> list[int]:
88
+ def add_media(self, tg_file_ids: list[str], media_url: str, media_type: str, origin: str, canonical_name: str = "") -> list[int]:
83
89
  uniq_id = self.compute_uniq(media_url)
84
90
  media_ids = []
85
91
  for tg_file_id in tg_file_ids:
@@ -89,7 +95,14 @@ class Storage(object):
89
95
  if self.db_lookup_id(uniq_id):
90
96
  logging.info("Detected existing uniq_id, skipping storage write operation")
91
97
  continue
92
- media_ids += str(self.db.insert_one({"uniq_id": uniq_id, "media_type": media_type, "tg_file_id": tg_file_id, "origin": origin}).inserted_id)
98
+ media_ids += str(self.db.insert_one(
99
+ {
100
+ "uniq_id": uniq_id,
101
+ "media_type": media_type,
102
+ "tg_file_id": tg_file_id,
103
+ "origin": origin,
104
+ "canonical_name": canonical_name
105
+ }).inserted_id)
93
106
 
94
107
  return media_ids
95
108
 
@@ -152,7 +152,7 @@ class Bot(object):
152
152
  caption = f"**{job.canonical_name}**"
153
153
  if job.chat_type in (ChatType.GROUP, ChatType.SUPERGROUP):
154
154
  if job.canonical_name:
155
- caption += "\n"
155
+ caption += "\n—\n"
156
156
  if job.source_username:
157
157
  caption += f"Requested by **@{job.source_username}**"
158
158
  if job.source_username and job.url:
@@ -320,6 +320,7 @@ class Bot(object):
320
320
  else:
321
321
  args["disable_notification"] = True
322
322
  #args["reply_to_message_id"] = job.message_id
323
+ args["reply_to_message_id"] = None
323
324
 
324
325
  if os.environ.get("ENABLE_DONATES", None) == "true" and job.media_type is not JobType.COLLECTION:
325
326
  args["reply_markup"] = InlineKeyboardMarkup([[InlineKeyboardButton("❤ Donate", url=os.environ.get("DONATE_LINK", "https://pay.cryptocloud.plus/pos/W5BMtNQt5bJFoW2E"))]])
@@ -368,12 +369,12 @@ class Bot(object):
368
369
  elif job.media_type == JobType.COLLECTION:
369
370
  col_job_args = self.build_tg_args(job)
370
371
  sent_messages = []
372
+ snd_grp_options = {"chat_id": job.chat_id, "reply_to_message_id": job.message_id}
373
+ if job.chat_type in (ChatType.GROUP, ChatType.SUPERGROUP):
374
+ snd_grp_options["reply_to_message_id"] = None
371
375
  for i, media_chunk in enumerate(col_job_args["media"]):
372
- messages = await self.client.send_media_group(
373
- chat_id=job.chat_id,
374
- reply_to_message_id=job.message_id,
375
- media=media_chunk
376
- )
376
+ snd_grp_options["media"] = media_chunk
377
+ messages = await self.client.send_media_group(**snd_grp_options)
377
378
  sent_messages += messages
378
379
  if job.media_collection:
379
380
  for j, _ in enumerate(media_chunk):
@@ -105,8 +105,8 @@ class Handlers(object):
105
105
  )
106
106
  )
107
107
  elif ent_len:
108
- logging.info(entities[0])
109
108
  media_type = JobType[entities[0]["media_type"].upper()]
109
+ canonical_name = entities[0]["canonical_name"]
110
110
  await self.bot.upload_job(
111
111
  UploadJob(
112
112
  url=url,
@@ -115,7 +115,8 @@ class Handlers(object):
115
115
  media_type=media_type,
116
116
  chat_id=chat.id,
117
117
  chat_type=message.chat.type,
118
- source_username=Utils.extract_message_author(message)
118
+ source_username=Utils.extract_message_author(message),
119
+ canonical_name=canonical_name
119
120
  )
120
121
  )
121
122
  else:
@@ -132,9 +133,21 @@ class Handlers(object):
132
133
  if job.media_type == JobType.COLLECTION and job.save_items:
133
134
  for chunk in job.media_collection:
134
135
  for i in chunk:
135
- self.storage.add_media(tg_file_ids=[i.tg_file_id], media_url=i.effective_url, media_type=i.media_type.value, origin=origin.value)
136
+ self.storage.add_media(
137
+ tg_file_ids=[i.tg_file_id],
138
+ media_url=i.effective_url,
139
+ media_type=i.media_type.value,
140
+ origin=job.job_origin.value,
141
+ canonical_name=job.canonical_name
142
+ )
136
143
  else:
137
- self.storage.add_media(tg_file_ids=[','.join(tg_file_ids)], media_url=job.url, media_type=job.media_type.value, origin=origin.value)
144
+ self.storage.add_media(
145
+ tg_file_ids=[','.join(tg_file_ids)],
146
+ media_url=job.url,
147
+ media_type=job.media_type.value,
148
+ origin=job.job_origin.value,
149
+ canonical_name=job.canonical_name
150
+ )
138
151
  except Exception as e:
139
152
  logging.error("Exception occurred while performing upload callback!")
140
153
  logging.exception(e)
@@ -42,8 +42,8 @@ class PlaceholderMessage(object):
42
42
  chat_id=chat_id,
43
43
  animation=self.placeholder.tg_file_id,
44
44
  caption=text,
45
- parse_mode=ParseMode.MARKDOWN,
46
- reply_to_message_id=reply_id
45
+ reply_to_message_id=reply_id,
46
+ parse_mode=ParseMode.MARKDOWN
47
47
  )
48
48
 
49
49
  return reply
@@ -53,8 +53,8 @@ class PlaceholderMessage(object):
53
53
  chat_id=chat_id,
54
54
  photo=self.placeholder.tg_file_id,
55
55
  caption=text,
56
- parse_mode=ParseMode.MARKDOWN,
57
- reply_to_message_id=reply_id
56
+ reply_to_message_id=reply_id,
57
+ parse_mode=ParseMode.MARKDOWN
58
58
  )
59
59
 
60
60
  return reply
@@ -64,8 +64,8 @@ class PlaceholderMessage(object):
64
64
  chat_id=chat_id,
65
65
  document=self.placeholder.tg_file_id,
66
66
  caption=text,
67
- parse_mode=ParseMode.MARKDOWN,
68
- reply_to_message_id=reply_id
67
+ reply_to_message_id=reply_id,
68
+ parse_mode=ParseMode.MARKDOWN
69
69
  )
70
70
 
71
71
  return reply
@@ -110,8 +110,8 @@ class PlaceholderMessage(object):
110
110
  chat_id=chat_id,
111
111
  animation="https://bagrintsev.me/warp_beacon/placeholder_that_we_deserve.mp4",
112
112
  caption=text,
113
- parse_mode=ParseMode.MARKDOWN,
114
- reply_to_message_id=reply_id
113
+ reply_to_message_id=reply_id,
114
+ parse_mode=ParseMode.MARKDOWN
115
115
  )
116
116
  self.placeholder = PlaceHolder(PlaceholderType.ANIMATION, Utils.extract_file_id(reply))
117
117
  except Exception as e:
@@ -119,7 +119,7 @@ class PlaceholderMessage(object):
119
119
  logging.exception(e)
120
120
  img = self.create_default_placeholder_img("Loading, this may take a moment ...")
121
121
  reply = await self.bot.client.send_photo(
122
- chat_id=chat.id,
122
+ chat_id=chat_id,
123
123
  parse_mode=ParseMode.MARKDOWN,
124
124
  reply_to_message_id=reply_id,
125
125
  photo=img
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: warp_beacon
3
- Version: 2.2.8
3
+ Version: 2.2.10
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.8"
2
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes