refactor post_parser and rss_generator:move media in body render

This commit is contained in:
vvzvlad
2025-04-26 12:38:52 +04:00
parent e9949a7eab
commit b9d5e839df
2 changed files with 4 additions and 10 deletions
+2 -3
View File
@@ -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'<div class="message-text">')
content_body.append(f'<div class="post">')
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"<br>--- Forwarded post end ---") # Forward info end
content_body.append(f'</div><br>')
+2 -7
View File
@@ -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'<div class="message-media">{message_data["html"]["media"]}</div>',
f'<div class="message-body">{message_data["html"]["body"]}</div>',
f'<div class="message-footer">{message_data["html"]["footer"]}</div>'
]
@@ -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<br>\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'<div class="message-media">{combined_media}</div>',
f'<div class="message-body">{combined_html_body}</div>',
f'<div class="message-footer">{footer_html}</div>'
]