diff --git a/post_parser.py b/post_parser.py
index 6cb45fb..d1b358b 100644
--- a/post_parser.py
+++ b/post_parser.py
@@ -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 = ['
']
- for flag in flags:
+ for flag in flags_list:
flags_html.append(f'🏷 {flag}')
flags_html.append('
')
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('
')
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('
' + flags_html)
html_footer = '\n'.join(content_footer)
html_footer = self._sanitize_html(html_footer)
diff --git a/rss_generator.py b/rss_generator.py
index 25660d0..6356414 100644
--- a/rss_generator.py
+++ b/rss_generator.py
@@ -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'',
f'{combined_media}
',
f'{combined_html_body}
',
- f''
+ f''
]
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: