Refactor PostParser and RSS generator to improve flag handling and HTML footer generation
This commit is contained in:
+8
-7
@@ -440,14 +440,13 @@ class PostParser:
|
||||
html_content = '\n'.join(html_content)
|
||||
return html_content
|
||||
|
||||
def _format_flags(self, message: Message) -> str:
|
||||
def _format_flags(self, flags_list: list) -> str:
|
||||
if not Config['show_post_flags']:
|
||||
return ''
|
||||
|
||||
flags = self._extract_flags(message)
|
||||
if flags:
|
||||
if flags_list:
|
||||
flags_html = ['<div class="message-flags">']
|
||||
for flag in flags:
|
||||
for flag in flags_list:
|
||||
flags_html.append(f'🏷 {flag}')
|
||||
flags_html.append('</div>')
|
||||
return ' '.join(flags_html)
|
||||
@@ -465,7 +464,7 @@ class PostParser:
|
||||
'header': self._generate_html_header(message),
|
||||
'body': self._generate_html_body(message),
|
||||
'media': self._generate_html_media(message),
|
||||
'footer': self._generate_html_footer(message)
|
||||
'footer': self.generate_html_footer(message)
|
||||
},
|
||||
'flags': self._extract_flags(message),
|
||||
'author': self._get_author_info(message),
|
||||
@@ -663,12 +662,14 @@ class PostParser:
|
||||
return None
|
||||
|
||||
|
||||
def _generate_html_footer(self, message: Message) -> str:
|
||||
def generate_html_footer(self, message: Message) -> str:
|
||||
content_footer = []
|
||||
content_footer.append('<br>')
|
||||
if reactions_views_html := self._reactions_views_links(message): # Add reactions, views, date and links
|
||||
content_footer.append(reactions_views_html)
|
||||
if flags_html := self._format_flags(message): # Add flags
|
||||
flags_list = self._extract_flags(message)
|
||||
if flags_list:
|
||||
flags_html = self._format_flags(flags_list)
|
||||
content_footer.append('<br>' + flags_html)
|
||||
html_footer = '\n'.join(content_footer)
|
||||
html_footer = self._sanitize_html(html_footer)
|
||||
|
||||
+6
-3
@@ -184,13 +184,16 @@ async def _render_messages_groups(messages_groups, post_parser, exclude_flags: s
|
||||
for msg in processed_messages:
|
||||
if msg.get('flags'): # Check if flags exist and are not empty
|
||||
all_flags.update(msg['flags'])
|
||||
combined_flags = list(all_flags) # Convert back to list if needed, or keep as set
|
||||
merged_flags = list(all_flags) # Convert back to list if needed, or keep as set
|
||||
|
||||
main_message['flags'] = merged_flags
|
||||
footer_html = post_parser.generate_html_footer(main_message)
|
||||
|
||||
html_parts = [
|
||||
f'<div class="message-header">{main_message["html"]["header"]}</div>',
|
||||
f'<div class="message-media">{combined_media}</div>',
|
||||
f'<div class="message-text">{combined_html_body}</div>',
|
||||
f'<div class="message-footer">{main_message["html"]["footer"]}</div>'
|
||||
f'<div class="message-footer">{footer_html}</div>'
|
||||
]
|
||||
|
||||
rendered_posts.append({
|
||||
@@ -200,7 +203,7 @@ async def _render_messages_groups(messages_groups, post_parser, exclude_flags: s
|
||||
'title': main_message['html']['title'],
|
||||
'text': combined_text,
|
||||
'author': main_message['author'],
|
||||
'flags': combined_flags # Use the combined flags
|
||||
'flags': merged_flags
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user