From 26744e369965fba49ec872bd3696845fca1e8e12 Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Fri, 18 Apr 2025 23:02:29 +0300 Subject: [PATCH] refactoring --- post_parser.py | 14 +++++++------- rss_generator.py | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/post_parser.py b/post_parser.py index de1ae87..04f48e6 100644 --- a/post_parser.py +++ b/post_parser.py @@ -105,10 +105,11 @@ class PostParser: logger.error(f"post_not_found_or_empty: channel {prepared_channel_id}, post_id {post_id}") return None + processed_message = self.process_message(message) if output_type == 'html': - return self._format_html(message, debug) + return self._format_html(processed_message, debug) elif output_type == 'json': - return self.process_message(message) + return processed_message else: logger.error(f"Invalid output type: {output_type}") return None @@ -447,9 +448,8 @@ class PostParser: return flags - def _format_html(self, message: Message, debug: bool = False) -> str: + def _format_html(self, data: Dict[str, Any], debug: bool = False) -> str: html_content = [] - data = self.process_message(message)['html'] if debug: html_content.append(f'
Title: {data["title"]}
') @@ -459,7 +459,7 @@ class PostParser: # Add raw JSON debug output if debug is enabled if debug: - html_content.append(f'
{str(message)}
') + html_content.append(f'
{data["raw_message"]}
') html_data = '\n'.join(html_content) return html_data @@ -476,7 +476,6 @@ class PostParser: return '' def process_message(self, message: Message) -> Dict[Any, Any]: - logger.error(f"process_message message: {str(message)}") result = { 'channel': self.get_channel_username(message), 'message_id': message.id, @@ -494,7 +493,8 @@ class PostParser: 'views': message.views, 'reactions': self._extract_reactions(message), 'media_group_id': message.media_group_id, - 'service': getattr(message, "service", None) + 'service': getattr(message, "service", None), + 'raw_message': str(message) } # Add webpage data if available diff --git a/rss_generator.py b/rss_generator.py index f0c43dd..8f89f93 100644 --- a/rss_generator.py +++ b/rss_generator.py @@ -207,7 +207,8 @@ async def _render_messages_groups(messages_groups: list[list[Message]], for group in messages_groups: try: if len(group) == 1: # Single message - simple case - message_data = post_parser.process_message(group[0]) + one_message = group[0] + message_data = post_parser.process_message(one_message) html_parts = [ f'
{message_data["html"]["media"]}
', f'
{message_data["html"]["body"]}
',