warp-beacon 2.2.8__py3-none-any.whl → 2.2.10__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.2.8"
1
+ __version__ = "2.2.10"
2
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
@@ -3,7 +3,7 @@ lib/systemd/system/warp_beacon.service,sha256=lPmHqLqcI2eIV7nwHS0qcALQrznixqJuww
3
3
  var/warp_beacon/accounts.json,sha256=rKFQM_b9eoDS4mJ1B_SZNolPLXx1SQdQMdY2F_ZcBt8,1523
4
4
  var/warp_beacon/placeholder.gif,sha256=cE5CGJVaop4Sx21zx6j4AyoHU0ncmvQuS2o6hJfEH88,6064
5
5
  warp_beacon/__init__.py,sha256=_rThNODmz0nDp_n4mWo_HKaNFE5jk1_7cRhHyYaencI,163
6
- warp_beacon/__version__.py,sha256=XDXei5fg61VxVBlT807KOYh3HbXVdl_uehPZ3sl46Gk,23
6
+ warp_beacon/__version__.py,sha256=S4wq6McjHFKGhEU9aBbhNq0ulfsBmI3mryJRkShCF5s,24
7
7
  warp_beacon/warp_beacon.py,sha256=7KEtZDj-pdhtl6m-zFLsSojs1ZR4o7L0xbqtdmYPvfE,342
8
8
  warp_beacon/compress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  warp_beacon/compress/video.py,sha256=_PDMVYCyzLYxHv1uZmmzGcG_8rjaZr7BTXsXTTy_oS4,2846
@@ -30,16 +30,16 @@ warp_beacon/scraper/youtube/abstract.py,sha256=Wfui5UEN4OV4dnTbRTyYuf_qvUy9sX93r
30
30
  warp_beacon/scraper/youtube/music.py,sha256=8TguqXc1BC9Slp09BzCU8dtQ6BnyKwzZSLLFHpqDHtg,1498
31
31
  warp_beacon/scraper/youtube/shorts.py,sha256=pHfvEBau8Zp7Ar3LBuPmjqYq8fmjJUQvzeZXujQMpG4,1203
32
32
  warp_beacon/scraper/youtube/youtube.py,sha256=K98n2TSJaDZt-xT7mADZL1UEf2exIYm0Wnenn2GAYfI,2250
33
- warp_beacon/storage/__init__.py,sha256=8XsJXq9X7GDlTaWREF4W1PDX9PH5utwhjf5c5M8Bb7o,3378
33
+ warp_beacon/storage/__init__.py,sha256=m86MDXBMtZZsTPLI2cD-pM5Xkh2g2NYVvp_dtW8eH0Q,3548
34
34
  warp_beacon/telegram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- warp_beacon/telegram/bot.py,sha256=pvgoAchBq9ZRGkaXAO0PyDSb-NV_5_2rGQhEm0LuQdw,15182
36
- warp_beacon/telegram/handlers.py,sha256=LWDdJBLuB-ImemPtzldgm9UY42T2mr0yJsHHQZDmQkI,6759
37
- warp_beacon/telegram/placeholder_message.py,sha256=u5kVfTjGmVYkwA5opniRltHXGpsdSxI41WEde8J5os0,6418
35
+ warp_beacon/telegram/bot.py,sha256=EOfqhAZN_LDgjJrJCgIKzU1F6rd1t6dHYGmspu0OWas,15387
36
+ warp_beacon/telegram/handlers.py,sha256=xSNG_v4D4FaA5q1_5wXvJkjcDUhy5GaQnfpijJZpnPk,7039
37
+ warp_beacon/telegram/placeholder_message.py,sha256=32U-R_IMPRJd-S5UwlpemLkArJOxCmO7whcynduSbMA,6418
38
38
  warp_beacon/telegram/utils.py,sha256=CeWXMwyzv2l4Af6I-wW2ySU490c-5k82sBhkjabv0n4,2452
39
39
  warp_beacon/uploader/__init__.py,sha256=rsUkzzmtaeQY-kNkcIiPsrayS9idFKY3hBC71mR19XE,4743
40
- warp_beacon-2.2.8.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
41
- warp_beacon-2.2.8.dist-info/METADATA,sha256=ThDj6dK54k68nfDR8Nv_LKbzTGUdQtLnOvhjpge_jYI,21250
42
- warp_beacon-2.2.8.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
43
- warp_beacon-2.2.8.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
44
- warp_beacon-2.2.8.dist-info/top_level.txt,sha256=ALb_Ft_eG-OY4_m0TWUifNUOZsrx483L-zw7G7vqXoc,971
45
- warp_beacon-2.2.8.dist-info/RECORD,,
40
+ warp_beacon-2.2.10.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
41
+ warp_beacon-2.2.10.dist-info/METADATA,sha256=2xTkO37CWBcbnPRdMdKERDv8hqSSZvJX6ot4R_poCUM,21251
42
+ warp_beacon-2.2.10.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
43
+ warp_beacon-2.2.10.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
44
+ warp_beacon-2.2.10.dist-info/top_level.txt,sha256=ALb_Ft_eG-OY4_m0TWUifNUOZsrx483L-zw7G7vqXoc,971
45
+ warp_beacon-2.2.10.dist-info/RECORD,,