fix problems

This commit is contained in:
2026-01-23 00:37:09 +03:00
parent 03ed2bcf4e
commit 34251507da

View File

@@ -81,7 +81,11 @@ class PostPublishService:
text_post = html.escape(str(call.message.text)) text_post = html.escape(str(call.message.text))
author_id = await self._get_author_id(call.message.message_id) author_id = await self._get_author_id(call.message.message_id)
await self.db.update_status_by_message_id(call.message.message_id, "approved") updated_rows = await self.db.update_status_by_message_id(call.message.message_id, "approved")
if updated_rows == 0:
logger.error(f"Не удалось обновить статус поста message_id={call.message.message_id} на 'approved'")
raise PostNotFoundError(f"Пост с message_id={call.message.message_id} не найден в базе данных")
await send_text_message(self.main_public, call.message, text_post) await send_text_message(self.main_public, call.message, text_post)
await self._delete_post_and_notify_author(call, author_id) await self._delete_post_and_notify_author(call, author_id)
logger.info(f'Текст сообщения опубликован в канале {self.main_public}.') logger.info(f'Текст сообщения опубликован в канале {self.main_public}.')
@@ -93,7 +97,11 @@ class PostPublishService:
text_post_with_photo = html.escape(str(call.message.caption)) text_post_with_photo = html.escape(str(call.message.caption))
author_id = await self._get_author_id(call.message.message_id) author_id = await self._get_author_id(call.message.message_id)
await self.db.update_status_by_message_id(call.message.message_id, "approved") updated_rows = await self.db.update_status_by_message_id(call.message.message_id, "approved")
if updated_rows == 0:
logger.error(f"Не удалось обновить статус поста message_id={call.message.message_id} на 'approved'")
raise PostNotFoundError(f"Пост с message_id={call.message.message_id} не найден в базе данных")
await send_photo_message(self.main_public, call.message, call.message.photo[-1].file_id, text_post_with_photo) await send_photo_message(self.main_public, call.message, call.message.photo[-1].file_id, text_post_with_photo)
await self._delete_post_and_notify_author(call, author_id) await self._delete_post_and_notify_author(call, author_id)
logger.info(f'Пост с фото опубликован в канале {self.main_public}.') logger.info(f'Пост с фото опубликован в канале {self.main_public}.')
@@ -105,7 +113,11 @@ class PostPublishService:
text_post_with_photo = html.escape(str(call.message.caption)) text_post_with_photo = html.escape(str(call.message.caption))
author_id = await self._get_author_id(call.message.message_id) author_id = await self._get_author_id(call.message.message_id)
await self.db.update_status_by_message_id(call.message.message_id, "approved") updated_rows = await self.db.update_status_by_message_id(call.message.message_id, "approved")
if updated_rows == 0:
logger.error(f"Не удалось обновить статус поста message_id={call.message.message_id} на 'approved'")
raise PostNotFoundError(f"Пост с message_id={call.message.message_id} не найден в базе данных")
await send_video_message(self.main_public, call.message, call.message.video.file_id, text_post_with_photo) await send_video_message(self.main_public, call.message, call.message.video.file_id, text_post_with_photo)
await self._delete_post_and_notify_author(call, author_id) await self._delete_post_and_notify_author(call, author_id)
logger.info(f'Пост с видео опубликован в канале {self.main_public}.') logger.info(f'Пост с видео опубликован в канале {self.main_public}.')
@@ -116,7 +128,11 @@ class PostPublishService:
"""Публикация поста с кружком""" """Публикация поста с кружком"""
author_id = await self._get_author_id(call.message.message_id) author_id = await self._get_author_id(call.message.message_id)
await self.db.update_status_by_message_id(call.message.message_id, "approved") updated_rows = await self.db.update_status_by_message_id(call.message.message_id, "approved")
if updated_rows == 0:
logger.error(f"Не удалось обновить статус поста message_id={call.message.message_id} на 'approved'")
raise PostNotFoundError(f"Пост с message_id={call.message.message_id} не найден в базе данных")
await send_video_note_message(self.main_public, call.message, call.message.video_note.file_id) await send_video_note_message(self.main_public, call.message, call.message.video_note.file_id)
await self._delete_post_and_notify_author(call, author_id) await self._delete_post_and_notify_author(call, author_id)
logger.info(f'Пост с кружком опубликован в канале {self.main_public}.') logger.info(f'Пост с кружком опубликован в канале {self.main_public}.')
@@ -128,7 +144,11 @@ class PostPublishService:
text_post_with_photo = html.escape(str(call.message.caption)) text_post_with_photo = html.escape(str(call.message.caption))
author_id = await self._get_author_id(call.message.message_id) author_id = await self._get_author_id(call.message.message_id)
await self.db.update_status_by_message_id(call.message.message_id, "approved") updated_rows = await self.db.update_status_by_message_id(call.message.message_id, "approved")
if updated_rows == 0:
logger.error(f"Не удалось обновить статус поста message_id={call.message.message_id} на 'approved'")
raise PostNotFoundError(f"Пост с message_id={call.message.message_id} не найден в базе данных")
await send_audio_message(self.main_public, call.message, call.message.audio.file_id, text_post_with_photo) await send_audio_message(self.main_public, call.message, call.message.audio.file_id, text_post_with_photo)
await self._delete_post_and_notify_author(call, author_id) await self._delete_post_and_notify_author(call, author_id)
logger.info(f'Пост с аудио опубликован в канале {self.main_public}.') logger.info(f'Пост с аудио опубликован в канале {self.main_public}.')
@@ -139,7 +159,11 @@ class PostPublishService:
"""Публикация поста с войсом""" """Публикация поста с войсом"""
author_id = await self._get_author_id(call.message.message_id) author_id = await self._get_author_id(call.message.message_id)
await self.db.update_status_by_message_id(call.message.message_id, "approved") updated_rows = await self.db.update_status_by_message_id(call.message.message_id, "approved")
if updated_rows == 0:
logger.error(f"Не удалось обновить статус поста message_id={call.message.message_id} на 'approved'")
raise PostNotFoundError(f"Пост с message_id={call.message.message_id} не найден в базе данных")
await send_voice_message(self.main_public, call.message, call.message.voice.file_id) await send_voice_message(self.main_public, call.message, call.message.voice.file_id)
await self._delete_post_and_notify_author(call, author_id) await self._delete_post_and_notify_author(call, author_id)
logger.info(f'Пост с войсом опубликован в канале {self.main_public}.') logger.info(f'Пост с войсом опубликован в канале {self.main_public}.')
@@ -197,10 +221,8 @@ class PostPublishService:
@track_errors("post_publish_service", "decline_post") @track_errors("post_publish_service", "decline_post")
async def decline_post(self, call: CallbackQuery) -> None: async def decline_post(self, call: CallbackQuery) -> None:
"""Отклонение поста""" """Отклонение поста"""
logger.info(f"Начинаю отклонение поста. Message ID: {call.message.message_id}, Content type: {call.message.content_type}")
# Проверяем, является ли сообщение частью медиагруппы (осознанный костыль, т.к. сообщение к которому прикреплен коллбек без медиагруппы) # Проверяем, является ли сообщение частью медиагруппы (осознанный костыль, т.к. сообщение к которому прикреплен коллбек без медиагруппы)
if call.message.text == CONTENT_TYPE_MEDIA_GROUP: if call.message.text == CONTENT_TYPE_MEDIA_GROUP:
logger.debug("Сообщение является частью медиагруппы, вызываю _decline_media_group")
await self._decline_media_group(call) await self._decline_media_group(call)
return return
@@ -208,7 +230,6 @@ class PostPublishService:
if content_type in [CONTENT_TYPE_TEXT, CONTENT_TYPE_PHOTO, CONTENT_TYPE_AUDIO, if content_type in [CONTENT_TYPE_TEXT, CONTENT_TYPE_PHOTO, CONTENT_TYPE_AUDIO,
CONTENT_TYPE_VOICE, CONTENT_TYPE_VIDEO, CONTENT_TYPE_VIDEO_NOTE]: CONTENT_TYPE_VOICE, CONTENT_TYPE_VIDEO, CONTENT_TYPE_VIDEO_NOTE]:
logger.debug(f"Отклоняю одиночный пост типа: {content_type}")
await self._decline_single_post(call) await self._decline_single_post(call)
else: else:
logger.error(f"Неподдерживаемый тип контента для отклонения: {content_type}") logger.error(f"Неподдерживаемый тип контента для отклонения: {content_type}")
@@ -218,16 +239,16 @@ class PostPublishService:
@track_errors("post_publish_service", "_decline_single_post") @track_errors("post_publish_service", "_decline_single_post")
async def _decline_single_post(self, call: CallbackQuery) -> None: async def _decline_single_post(self, call: CallbackQuery) -> None:
"""Отклонение одиночного поста""" """Отклонение одиночного поста"""
logger.debug(f"Отклоняю одиночный пост. Message ID: {call.message.message_id}")
author_id = await self._get_author_id(call.message.message_id) author_id = await self._get_author_id(call.message.message_id)
logger.debug(f"ID автора получен: {author_id}")
await self.db.update_status_by_message_id(call.message.message_id, "declined") updated_rows = await self.db.update_status_by_message_id(call.message.message_id, "declined")
logger.debug(f"Удаляю сообщение из группы {self.group_for_posts}") if updated_rows == 0:
logger.error(f"Не удалось обновить статус поста message_id={call.message.message_id} на 'declined'")
raise PostNotFoundError(f"Пост с message_id={call.message.message_id} не найден в базе данных")
await self._get_bot(call.message).delete_message(chat_id=self.group_for_posts, message_id=call.message.message_id) await self._get_bot(call.message).delete_message(chat_id=self.group_for_posts, message_id=call.message.message_id)
try: try:
logger.debug(f"Отправляю уведомление об отклонении автору {author_id}")
await send_text_message(author_id, call.message, MESSAGE_POST_DECLINED) await send_text_message(author_id, call.message, MESSAGE_POST_DECLINED)
except Exception as e: except Exception as e:
if str(e) == ERROR_BOT_BLOCKED: if str(e) == ERROR_BOT_BLOCKED:
@@ -242,8 +263,6 @@ class PostPublishService:
@track_media_processing("media_group") @track_media_processing("media_group")
async def _decline_media_group(self, call: CallbackQuery) -> None: async def _decline_media_group(self, call: CallbackQuery) -> None:
"""Отклонение медиагруппы""" """Отклонение медиагруппы"""
logger.debug(f"Отклоняю медиагруппу. Helper message ID: {call.message.message_id}")
await self.db.update_status_for_media_group_by_helper_id(call.message.message_id, "declined") await self.db.update_status_for_media_group_by_helper_id(call.message.message_id, "declined")
post_ids = await self.db.get_post_ids_from_telegram_by_last_id(call.message.message_id) post_ids = await self.db.get_post_ids_from_telegram_by_last_id(call.message.message_id)