[ВОЛК] добавление полной диагностики telegram при ошибке
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-12-21 15:06:30 +03:00
parent d89b4efcba
commit d4770fbbac
+40
View File
@@ -148,6 +148,11 @@ async def tg_post_event(bot, event_data):
) )
except TelegramError as e: except TelegramError as e:
logger.warning(f"Не удалось отправить изображение для события номер {event_data['number']}: {e}. Отправляем текстовое сообщение.") logger.warning(f"Не удалось отправить изображение для события номер {event_data['number']}: {e}. Отправляем текстовое сообщение.")
logger.error(f"Полная информация об ошибке Telegram при отправке изображения для события {event_data['number']}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
message = await bot.send_message( message = await bot.send_message(
chat_id=CHANNEL_ID, chat_id=CHANNEL_ID,
text=initial_text, text=initial_text,
@@ -187,6 +192,11 @@ async def tg_post_event(bot, event_data):
) )
except TelegramError as e: except TelegramError as e:
logger.warning(f"Не удалось отредактировать подпись для события номер {event_data['number']}: {e}. Пробуем отредактировать текстовое сообщение.") logger.warning(f"Не удалось отредактировать подпись для события номер {event_data['number']}: {e}. Пробуем отредактировать текстовое сообщение.")
logger.error(f"Полная информация об ошибке Telegram при редактировании подписи для события {event_data['number']}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
await bot.edit_message_text( await bot.edit_message_text(
chat_id=CHANNEL_ID, chat_id=CHANNEL_ID,
message_id=message_id, message_id=message_id,
@@ -209,9 +219,19 @@ async def tg_post_event(bot, event_data):
# Обработка ошибки FloodWait (429) # Обработка ошибки FloodWait (429)
logger.error(f"Получена ошибка FloodWait (429) при публикации события номер {event_data['number']}: {e}") logger.error(f"Получена ошибка FloodWait (429) при публикации события номер {event_data['number']}: {e}")
logger.error(f"Необходимо подождать {e.retry_after} секунд перед следующей попыткой") logger.error(f"Необходимо подождать {e.retry_after} секунд перед следующей попыткой")
logger.error(f"Полная информация об ошибке RetryAfter для события {event_data['number']}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
raise # Пробрасываем исключение выше для обработки на уровне цикла raise # Пробрасываем исключение выше для обработки на уровне цикла
except TelegramError as e: except TelegramError as e:
logger.error(f"Ошибка Telegram при публикации события номер {event_data['number']}: {e}") logger.error(f"Ошибка Telegram при публикации события номер {event_data['number']}: {e}")
logger.error(f"Полная информация об ошибке Telegram для события {event_data['number']}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
return None return None
except Exception as e: except Exception as e:
logger.error(f"Неожиданная ошибка при публикации события номер {event_data['number']}: {e}") logger.error(f"Неожиданная ошибка при публикации события номер {event_data['number']}: {e}")
@@ -295,9 +315,19 @@ async def tg_post_event_by_id(id_event):
logger.error(f"Не удалось опубликовать событие ID {id_event}") logger.error(f"Не удалось опубликовать событие ID {id_event}")
except RetryAfter as e: except RetryAfter as e:
logger.error(f"Полная информация об ошибке RetryAfter в tg_post_event_by_id для события ID {id_event}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
raise e raise e
except Exception as e: except Exception as e:
logger.error(f"Ошибка при публикации: {e}") logger.error(f"Ошибка при публикации: {e}")
logger.error(f"Полная информация об ошибке в tg_post_event_by_id для события ID {id_event}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
finally: finally:
if conn: if conn:
conn.close() conn.close()
@@ -353,9 +383,19 @@ async def tg_post_all_events():
except RetryAfter as e: except RetryAfter as e:
logger.error(f"Прерываем публикацию из-за ошибки FloodWait. Ожидание: {e.retry_after} секунд") logger.error(f"Прерываем публикацию из-за ошибки FloodWait. Ожидание: {e.retry_after} секунд")
logger.error(f"Полная информация об ошибке RetryAfter в tg_post_all_events для события ID {event['id_event']}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
break break
except Exception as e: except Exception as e:
logger.error(f"Ошибка при публикации события ID {event['id_event']}: {e}") logger.error(f"Ошибка при публикации события ID {event['id_event']}: {e}")
logger.error(f"Полная информация об ошибке в tg_post_all_events для события ID {event['id_event']}:")
logger.error(f" Тип ошибки: {type(e).__name__}")
logger.error(f" Сообщение: {str(e)}")
logger.error(f" Все атрибуты ошибки: {vars(e)}")
logger.error(f" Полное представление: {repr(e)}")
# Продолжаем публикацию следующих событий, несмотря на ошибку # Продолжаем публикацию следующих событий, несмотря на ошибку
logger.info(f"Опубликовано событий в этом запуске: {event_count}") logger.info(f"Опубликовано событий в этом запуске: {event_count}")