Skip to content

Commit 4e99d5b

Browse files
committed
debug process forwarded group media
1 parent 1f73c77 commit 4e99d5b

File tree

4 files changed

+26
-15
lines changed

4 files changed

+26
-15
lines changed

src/app/handlers/logic/media_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def handle_media_group(post, media_group_id, BOT_TOKEN, forwarded=False):
2121
return {"statusCode": 200, "body": json.dumps({"message": "Waiting"})}
2222

2323
posts = [item["post"] for item in items]
24-
payload = process_media_group_payload(posts)
24+
payload = process_media_group_payload(posts, forwarded)
2525
url = prepare_url("sendMediaGroup", BOT_TOKEN)
2626
response = requests.post(url, json=payload)
2727
print("Sent media group:", response.status_code)

src/app/telegram/formatting.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import re
2+
3+
4+
def escape_markdown(text: str) -> str:
5+
escape_chars = r"_*\[\]()~`>#+-=|{}.!"
6+
return re.sub(f"([{re.escape(escape_chars)}])", r"\\\1", text)
7+
8+
9+
def make_clickable_forwarded_text(original_channel: str, text: str) -> str:
10+
escaped_text = escape_markdown(text)
11+
escaped_channel = escape_markdown(original_channel)
12+
return f"*[🔁 Weitergeleitet aus {escaped_channel}](https://t.me/{original_channel})*\n\n{escaped_text}"

src/app/telegram/groups/payload_builder.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from app.config.constants import TARGET_CHAT_ID
2+
from app.telegram.formatting import make_clickable_forwarded_text
23

34

4-
def process_media_group_payload(posts):
5+
def process_media_group_payload(posts, forwarded=False):
56
"""Erstellt das Payload für Telegrams sendMediaGroup-Methode."""
67
if not posts:
78
print("Leere MediaGroup – überspringe.")
@@ -41,6 +42,16 @@ def process_media_group_payload(posts):
4142

4243
if i == 0 and p.get("caption"):
4344
media_item["caption"] = p["caption"]
45+
if forwarded:
46+
original_channel = p["chat"].get("title", "Quelle")
47+
original_channel = (
48+
p.get("forward_origin", {}).get("chat", {}).get("title")
49+
)
50+
text = p.get("text", "")
51+
media_item["parse_mode"] = "MarkdownV2"
52+
media_item["caption"] = make_clickable_forwarded_text(
53+
original_channel, text
54+
)
4455
if p.get("caption_entities"):
4556
media_item["caption_entities"] = p["caption_entities"]
4657

src/app/telegram/payloads/single.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,5 @@
11
from app.config.constants import TARGET_CHAT_ID
2-
3-
import re
4-
5-
6-
def escape_markdown(text: str) -> str:
7-
escape_chars = r"_*\[\]()~`>#+-=|{}.!"
8-
return re.sub(f"([{re.escape(escape_chars)}])", r"\\\1", text)
9-
10-
11-
def make_clickable_forwarded_text(original_channel: str, text: str) -> str:
12-
escaped_text = escape_markdown(text)
13-
escaped_channel = escape_markdown(original_channel)
14-
return f"{escaped_text}\n\n*[🔁 Weitergeleitet aus {escaped_channel}](https://t.me/{original_channel})*"
2+
from app.telegram.formatting import make_clickable_forwarded_text
153

164

175
def process_photo_payload(post, forwarded=False):

0 commit comments

Comments
 (0)