fix(bot): early exit for processed posts
This commit is contained in:
@@ -28,9 +28,11 @@ async def main():
|
|||||||
|
|
||||||
except (ValueError, TypeError) as e:
|
except (ValueError, TypeError) as e:
|
||||||
logger.critical(f"Ошибка в конфигурации или при запуске: {e}")
|
logger.critical(f"Ошибка в конфигурации или при запуске: {e}")
|
||||||
|
raise
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.critical(f"Фатальная ошибка при запуске бота: {e}")
|
logger.critical(f"Фатальная ошибка при запуске бота: {e}")
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
+14
-7
@@ -145,18 +145,21 @@ class TelegramStarsBot:
|
|||||||
post_message_id = None
|
post_message_id = None
|
||||||
|
|
||||||
post_id = post.get("post_id")
|
post_id = post.get("post_id")
|
||||||
|
|
||||||
|
if not post_id:
|
||||||
|
logger.warning("Пост без post_id, пропускаю.")
|
||||||
|
return
|
||||||
|
|
||||||
|
if self.processed_manager.is_processed(post_id):
|
||||||
|
logger.debug(f"Пост {post_id} уже обработан, пропускаю.")
|
||||||
|
return
|
||||||
|
|
||||||
|
# Only fetch full post data for unprocessed posts
|
||||||
post = await self.lolz_api.get_post(post_id=post_id)
|
post = await self.lolz_api.get_post(post_id=post_id)
|
||||||
|
|
||||||
poster_user_id = post.get("poster_user_id")
|
poster_user_id = post.get("poster_user_id")
|
||||||
poster_username = post.get("poster_username", "Неизвестный пользователь")
|
poster_username = post.get("poster_username", "Неизвестный пользователь")
|
||||||
|
|
||||||
if not post_id or self.processed_manager.is_processed(post_id):
|
|
||||||
if post_id:
|
|
||||||
logger.debug(f"Пост {post_id} уже обработан, пропускаю.")
|
|
||||||
else:
|
|
||||||
logger.warning("Пост без post_id, пропускаю.")
|
|
||||||
return
|
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Найден новый пост для обработки: ID {post_id} (от {poster_username})"
|
f"Найден новый пост для обработки: ID {post_id} (от {poster_username})"
|
||||||
)
|
)
|
||||||
@@ -264,7 +267,11 @@ class TelegramStarsBot:
|
|||||||
|
|
||||||
if posts:
|
if posts:
|
||||||
for post in posts:
|
for post in posts:
|
||||||
|
try:
|
||||||
await self._process_single_post(post)
|
await self._process_single_post(post)
|
||||||
|
except Exception as e:
|
||||||
|
post_id = post.get("post_id", "?")
|
||||||
|
logger.error(f"Ошибка обработки поста {post_id}, пропускаю: {e}")
|
||||||
if last_page > self.start_page:
|
if last_page > self.start_page:
|
||||||
logger.info(f"Мониторинг продвинулся до страницы {last_page}.")
|
logger.info(f"Мониторинг продвинулся до страницы {last_page}.")
|
||||||
self.start_page = last_page
|
self.start_page = last_page
|
||||||
|
|||||||
Reference in New Issue
Block a user