From b9d5e839dfc6e9cc6d0745b5e8f7b2c43318ede7 Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Sat, 26 Apr 2025 12:38:52 +0400 Subject: [PATCH] refactor post_parser and rss_generator:move media in body render --- post_parser.py | 5 ++--- rss_generator.py | 9 ++------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/post_parser.py b/post_parser.py index fd16e95..27cd6d2 100644 --- a/post_parser.py +++ b/post_parser.py @@ -478,7 +478,6 @@ class PostParser: 'html': { 'title': self._generate_title(message), 'body': self._generate_html_body(message), - 'media': self._generate_html_media(message), 'footer': self.generate_html_footer(message) }, 'flags': self._extract_flags(message), @@ -598,12 +597,12 @@ class PostParser: forward_html = self._format_forward_info(message) reply_html = self._format_reply_info(message) - if text_html or poll_html: - content_body.append(f'
') + content_body.append(f'
') if forward_html: content_body.append(forward_html) # Forward info if reply_html: content_body.append(reply_html) # Reply info content_body.append(f'{text_html}') + content_body.append(f'{self._generate_html_media(message)}') if poll_html: content_body.append(poll_html) # Poll if message.forward_origin: content_body.append(f"
--- Forwarded post end ---") # Forward info end content_body.append(f'

') diff --git a/rss_generator.py b/rss_generator.py index 906d840..2e0cffc 100644 --- a/rss_generator.py +++ b/rss_generator.py @@ -203,7 +203,6 @@ async def _render_messages_groups(messages_groups: list[list[Message]], one_message = group[0] message_data = post_parser.process_message(one_message) html_parts = [ - f'
{message_data["html"]["media"]}
', f'
{message_data["html"]["body"]}
', f'' ] @@ -216,7 +215,7 @@ async def _render_messages_groups(messages_groups: list[list[Message]], 'author': message_data['author'], 'flags': message_data['flags'] }) - else: # Multiple messages in group - merge media, text and html body + else: # Multiple messages in group - merge text and html body processed_messages = [post_parser.process_message(msg) for msg in group] # Determine main message for header/footer/title @@ -224,10 +223,7 @@ async def _render_messages_groups(messages_groups: list[list[Message]], (msg for msg in processed_messages if msg['text']), processed_messages[0] # fallback if no message contains text ) - - # Collect all media sections from all messages in the group - all_media = [msg['html']['media'] for msg in processed_messages if msg['html']['media']] - combined_media = '\n
\n'.join(all_media) + # Merge text fields from all messages all_texts = [msg['text'] for msg in processed_messages if msg['text']] @@ -252,7 +248,6 @@ async def _render_messages_groups(messages_groups: list[list[Message]], footer_html = post_parser.generate_html_footer(tg_message, flags_list=merged_flags) html_parts = [ - f'
{combined_media}
', f'
{combined_html_body}
', f'' ]