[ВОЛК] доработка тестового httpx постера до картинок
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -331,6 +331,179 @@ async def test_telegram_publish():
|
||||
import traceback
|
||||
logger.error(f"Трассировка стека:\n{traceback.format_exc()}")
|
||||
|
||||
# Публикуем второе сообщение с картинкой
|
||||
try:
|
||||
logger.info("=" * 80)
|
||||
logger.info("ПОПЫТКА ОТПРАВКИ ТЕСТОВОГО СООБЩЕНИЯ С КАРТИНКОЙ")
|
||||
logger.info("=" * 80)
|
||||
send_photo_url = f"https://api.telegram.org/bot{POSTER_BOT_TOKEN}/sendPhoto"
|
||||
image_url = "https://base.volk-nn.ru/uploads/events/volk26/volk26_event/20251210_175059_0.jpg"
|
||||
|
||||
# Формируем текст для сообщения с картинкой
|
||||
photo_caption = f"{test_tags}\n{test_unit_name}\n<b>Тестовое сообщение с картинкой</b>\n\nЭто тестовое сообщение с изображением для проверки работы публикации фото в Telegram."
|
||||
|
||||
logger.info(f"URL запроса: {send_photo_url}")
|
||||
logger.info(f"Метод: POST")
|
||||
logger.info(f"Параметры запроса:")
|
||||
logger.info(f" chat_id: {CHANNEL_ID}")
|
||||
logger.info(f" photo_url: {image_url}")
|
||||
logger.info(f" photo_url_length: {len(image_url)}")
|
||||
logger.info(f" caption_length: {len(photo_caption)}")
|
||||
logger.info(f" parse_mode: HTML")
|
||||
logger.info(f" disable_notification: {PUBLISH_SILENTLY}")
|
||||
|
||||
photo_payload = {
|
||||
'chat_id': CHANNEL_ID,
|
||||
'photo': image_url,
|
||||
'caption': photo_caption,
|
||||
'parse_mode': 'HTML',
|
||||
'disable_notification': PUBLISH_SILENTLY
|
||||
}
|
||||
|
||||
photo_start_time = datetime.now()
|
||||
photo_response = await httpx_client.post(send_photo_url, json=photo_payload)
|
||||
photo_end_time = datetime.now()
|
||||
photo_duration = (photo_end_time - photo_start_time).total_seconds()
|
||||
|
||||
logger.info(f"Статус ответа: {photo_response.status_code}")
|
||||
logger.info(f"Время запроса: {photo_duration:.2f} секунд")
|
||||
|
||||
if photo_response.status_code == 200:
|
||||
photo_result = photo_response.json()
|
||||
if photo_result.get('ok'):
|
||||
photo_message_data = photo_result.get('result', {})
|
||||
photo_message_id = photo_message_data.get('message_id')
|
||||
photo_chat_data = photo_message_data.get('chat', {})
|
||||
|
||||
logger.info("=" * 80)
|
||||
logger.info("СООБЩЕНИЕ С КАРТИНКОЙ УСПЕШНО ОТПРАВЛЕНО!")
|
||||
logger.info("=" * 80)
|
||||
logger.info(f"Message ID: {photo_message_id}")
|
||||
logger.info(f"Chat ID: {photo_chat_data.get('id')}")
|
||||
logger.info(f"Chat type: {photo_chat_data.get('type')}")
|
||||
logger.info(f"Chat title: {photo_chat_data.get('title', 'N/A')}")
|
||||
logger.info(f"Время отправки: {photo_duration:.2f} секунд")
|
||||
logger.info(f"Дата сообщения: {photo_message_data.get('date')}")
|
||||
logger.info("=" * 80)
|
||||
|
||||
# Редактируем сообщение с картинкой, добавляя информацию о редактировании
|
||||
try:
|
||||
logger.info("=" * 80)
|
||||
logger.info("ПОПЫТКА РЕДАКТИРОВАНИЯ СООБЩЕНИЯ С КАРТИНКОЙ")
|
||||
logger.info("=" * 80)
|
||||
edit_photo_caption_url = f"https://api.telegram.org/bot{POSTER_BOT_TOKEN}/editMessageCaption"
|
||||
logger.info(f"URL запроса: {edit_photo_caption_url}")
|
||||
logger.info(f"Метод: POST")
|
||||
logger.info(f"Параметры запроса:")
|
||||
logger.info(f" chat_id: {CHANNEL_ID}")
|
||||
logger.info(f" message_id: {photo_message_id}")
|
||||
|
||||
# Добавляем информацию о редактировании в конец подписи
|
||||
edited_photo_caption = f"{photo_caption}\n\n<i>Сообщение с картинкой отредактировано через httpx клиент</i>"
|
||||
logger.info(f" caption_length (после редактирования): {len(edited_photo_caption)}")
|
||||
logger.info(f" parse_mode: HTML")
|
||||
|
||||
edit_photo_payload = {
|
||||
'chat_id': CHANNEL_ID,
|
||||
'message_id': photo_message_id,
|
||||
'caption': edited_photo_caption,
|
||||
'parse_mode': 'HTML'
|
||||
}
|
||||
|
||||
edit_photo_start_time = datetime.now()
|
||||
edit_photo_response = await httpx_client.post(edit_photo_caption_url, json=edit_photo_payload)
|
||||
edit_photo_end_time = datetime.now()
|
||||
edit_photo_duration = (edit_photo_end_time - edit_photo_start_time).total_seconds()
|
||||
|
||||
logger.info(f"Статус ответа: {edit_photo_response.status_code}")
|
||||
logger.info(f"Время запроса: {edit_photo_duration:.2f} секунд")
|
||||
|
||||
if edit_photo_response.status_code == 200:
|
||||
edit_photo_result = edit_photo_response.json()
|
||||
if edit_photo_result.get('ok'):
|
||||
logger.info("=" * 80)
|
||||
logger.info("СООБЩЕНИЕ С КАРТИНКОЙ УСПЕШНО ОТРЕДАКТИРОВАНО!")
|
||||
logger.info("=" * 80)
|
||||
logger.info(f"Время редактирования: {edit_photo_duration:.2f} секунд")
|
||||
logger.info("=" * 80)
|
||||
else:
|
||||
logger.error(f"Ошибка в ответе API при редактировании подписи: {edit_photo_result}")
|
||||
logger.error(f"Описание ошибки: {edit_photo_result.get('description', 'N/A')}")
|
||||
logger.error(f"Код ошибки: {edit_photo_result.get('error_code', 'N/A')}")
|
||||
else:
|
||||
logger.error(f"HTTP ошибка при редактировании подписи: {edit_photo_response.status_code}")
|
||||
logger.error(f"Текст ответа: {edit_photo_response.text}")
|
||||
|
||||
except httpx.TimeoutException as e:
|
||||
logger.error("=" * 80)
|
||||
logger.error("ТАЙМАУТ ПРИ РЕДАКТИРОВАНИИ СООБЩЕНИЯ С КАРТИНКОЙ!")
|
||||
logger.error("=" * 80)
|
||||
logger.error(f"Тип ошибки: {type(e).__name__}")
|
||||
logger.error(f"Сообщение: {str(e)}")
|
||||
logger.error(f"Все атрибуты ошибки: {vars(e)}")
|
||||
logger.error(f"Полное представление: {repr(e)}")
|
||||
logger.error(f"Параметры запроса:")
|
||||
logger.error(f" chat_id: {CHANNEL_ID}")
|
||||
logger.error(f" message_id: {photo_message_id}")
|
||||
logger.error(f" caption_length: {len(edited_photo_caption)}")
|
||||
except httpx.HTTPError as e:
|
||||
logger.error("=" * 80)
|
||||
logger.error("ОШИБКА HTTP ПРИ РЕДАКТИРОВАНИИ СООБЩЕНИЯ С КАРТИНКОЙ!")
|
||||
logger.error("=" * 80)
|
||||
logger.error(f"Тип ошибки: {type(e).__name__}")
|
||||
logger.error(f"Сообщение: {str(e)}")
|
||||
logger.error(f"Все атрибуты ошибки: {vars(e)}")
|
||||
logger.error(f"Полное представление: {repr(e)}")
|
||||
except Exception as e:
|
||||
logger.error("=" * 80)
|
||||
logger.error("НЕОЖИДАННАЯ ОШИБКА ПРИ РЕДАКТИРОВАНИИ СООБЩЕНИЯ С КАРТИНКОЙ!")
|
||||
logger.error("=" * 80)
|
||||
logger.error(f"Тип ошибки: {type(e).__name__}")
|
||||
logger.error(f"Сообщение: {str(e)}")
|
||||
logger.error(f"Все атрибуты ошибки: {vars(e) if hasattr(e, '__dict__') else 'N/A'}")
|
||||
logger.error(f"Полное представление: {repr(e)}")
|
||||
import traceback
|
||||
logger.error(f"Трассировка стека:\n{traceback.format_exc()}")
|
||||
|
||||
else:
|
||||
logger.error(f"Ошибка в ответе API при отправке фото: {photo_result}")
|
||||
logger.error(f"Описание ошибки: {photo_result.get('description', 'N/A')}")
|
||||
logger.error(f"Код ошибки: {photo_result.get('error_code', 'N/A')}")
|
||||
else:
|
||||
logger.error(f"HTTP ошибка при отправке фото: {photo_response.status_code}")
|
||||
logger.error(f"Текст ответа: {photo_response.text}")
|
||||
|
||||
except httpx.TimeoutException as e:
|
||||
logger.error("=" * 80)
|
||||
logger.error("ТАЙМАУТ ПРИ ОТПРАВКЕ СООБЩЕНИЯ С КАРТИНКОЙ!")
|
||||
logger.error("=" * 80)
|
||||
logger.error(f"Тип ошибки: {type(e).__name__}")
|
||||
logger.error(f"Сообщение: {str(e)}")
|
||||
logger.error(f"Все атрибуты ошибки: {vars(e)}")
|
||||
logger.error(f"Полное представление: {repr(e)}")
|
||||
logger.error(f"Параметры запроса:")
|
||||
logger.error(f" chat_id: {CHANNEL_ID}")
|
||||
logger.error(f" photo_url: {image_url}")
|
||||
logger.error(f" caption_length: {len(photo_caption)}")
|
||||
except httpx.HTTPError as e:
|
||||
logger.error("=" * 80)
|
||||
logger.error("ОШИБКА HTTP ПРИ ОТПРАВКЕ СООБЩЕНИЯ С КАРТИНКОЙ!")
|
||||
logger.error("=" * 80)
|
||||
logger.error(f"Тип ошибки: {type(e).__name__}")
|
||||
logger.error(f"Сообщение: {str(e)}")
|
||||
logger.error(f"Все атрибуты ошибки: {vars(e)}")
|
||||
logger.error(f"Полное представление: {repr(e)}")
|
||||
except Exception as e:
|
||||
logger.error("=" * 80)
|
||||
logger.error("НЕОЖИДАННАЯ ОШИБКА ПРИ ОТПРАВКЕ СООБЩЕНИЯ С КАРТИНКОЙ!")
|
||||
logger.error("=" * 80)
|
||||
logger.error(f"Тип ошибки: {type(e).__name__}")
|
||||
logger.error(f"Сообщение: {str(e)}")
|
||||
logger.error(f"Все атрибуты ошибки: {vars(e) if hasattr(e, '__dict__') else 'N/A'}")
|
||||
logger.error(f"Полное представление: {repr(e)}")
|
||||
import traceback
|
||||
logger.error(f"Трассировка стека:\n{traceback.format_exc()}")
|
||||
|
||||
return True
|
||||
else:
|
||||
logger.error(f"Ошибка в ответе API: {result}")
|
||||
|
||||
Reference in New Issue
Block a user