[ВОЛК] фиксим редактирование без изменения текста
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
+51
-4
@@ -364,6 +364,11 @@ async def tg_post_event(httpx_client, event_data):
|
|||||||
else:
|
else:
|
||||||
final_text = initial_text
|
final_text = initial_text
|
||||||
|
|
||||||
|
# Проверяем, изменился ли текст. Если нет - не редактируем сообщение
|
||||||
|
if final_text == initial_text:
|
||||||
|
logger.info(f"Финальный текст идентичен исходному для события {event_data['number']}, редактирование не требуется")
|
||||||
|
return message_id
|
||||||
|
|
||||||
await asyncio.sleep(2)
|
await asyncio.sleep(2)
|
||||||
|
|
||||||
# Редактируем сообщение, добавляя ссылки
|
# Редактируем сообщение, добавляя ссылки
|
||||||
@@ -386,13 +391,27 @@ async def tg_post_event(httpx_client, event_data):
|
|||||||
if edit_result.get('ok'):
|
if edit_result.get('ok'):
|
||||||
logger.info(f"Подпись успешно отредактирована для события {event_data['number']}")
|
logger.info(f"Подпись успешно отредактирована для события {event_data['number']}")
|
||||||
else:
|
else:
|
||||||
# Ошибка при редактировании подписи - пробуем редактировать текст
|
# Ошибка при редактировании подписи
|
||||||
error_code = edit_result.get('error_code')
|
error_code = edit_result.get('error_code')
|
||||||
|
error_description = edit_result.get('description', 'Unknown error')
|
||||||
|
# Обрабатываем ошибку 400 (сообщение не изменено) как предупреждение
|
||||||
|
if error_code == 400 and "not modified" in error_description.lower():
|
||||||
|
logger.info(f"Сообщение для события {event_data['number']} не требует редактирования (текст идентичен)")
|
||||||
|
return message_id
|
||||||
if error_code == 429:
|
if error_code == 429:
|
||||||
retry_after = edit_result.get('parameters', {}).get('retry_after', 60)
|
retry_after = edit_result.get('parameters', {}).get('retry_after', 60)
|
||||||
raise Exception(f"RetryAfter:{retry_after}")
|
raise Exception(f"RetryAfter:{retry_after}")
|
||||||
raise Exception(f"API error: {edit_result.get('description', 'Unknown error')}")
|
raise Exception(f"API error: {error_description}")
|
||||||
else:
|
else:
|
||||||
|
if edit_caption_response.status_code == 400:
|
||||||
|
try:
|
||||||
|
error_data = edit_caption_response.json()
|
||||||
|
error_description = error_data.get('description', '')
|
||||||
|
if "not modified" in error_description.lower():
|
||||||
|
logger.info(f"Сообщение для события {event_data['number']} не требует редактирования (текст идентичен)")
|
||||||
|
return message_id
|
||||||
|
except:
|
||||||
|
pass
|
||||||
if edit_caption_response.status_code == 429:
|
if edit_caption_response.status_code == 429:
|
||||||
retry_after = 60
|
retry_after = 60
|
||||||
try:
|
try:
|
||||||
@@ -443,11 +462,25 @@ async def tg_post_event(httpx_client, event_data):
|
|||||||
logger.info(f"Текст успешно отредактирован для события {event_data['number']}")
|
logger.info(f"Текст успешно отредактирован для события {event_data['number']}")
|
||||||
else:
|
else:
|
||||||
error_code = edit_result.get('error_code')
|
error_code = edit_result.get('error_code')
|
||||||
|
error_description = edit_result.get('description', 'Unknown error')
|
||||||
|
# Обрабатываем ошибку 400 (сообщение не изменено) как предупреждение
|
||||||
|
if error_code == 400 and "not modified" in error_description.lower():
|
||||||
|
logger.info(f"Сообщение для события {event_data['number']} не требует редактирования (текст идентичен)")
|
||||||
|
return message_id
|
||||||
if error_code == 429:
|
if error_code == 429:
|
||||||
retry_after = edit_result.get('parameters', {}).get('retry_after', 60)
|
retry_after = edit_result.get('parameters', {}).get('retry_after', 60)
|
||||||
raise Exception(f"RetryAfter:{retry_after}")
|
raise Exception(f"RetryAfter:{retry_after}")
|
||||||
raise Exception(f"API error: {edit_result.get('description', 'Unknown error')}")
|
raise Exception(f"API error: {error_description}")
|
||||||
else:
|
else:
|
||||||
|
if edit_text_response.status_code == 400:
|
||||||
|
try:
|
||||||
|
error_data = edit_text_response.json()
|
||||||
|
error_description = error_data.get('description', '')
|
||||||
|
if "not modified" in error_description.lower():
|
||||||
|
logger.info(f"Сообщение для события {event_data['number']} не требует редактирования (текст идентичен)")
|
||||||
|
return message_id
|
||||||
|
except:
|
||||||
|
pass
|
||||||
if edit_text_response.status_code == 429:
|
if edit_text_response.status_code == 429:
|
||||||
retry_after = 60
|
retry_after = 60
|
||||||
try:
|
try:
|
||||||
@@ -492,11 +525,25 @@ async def tg_post_event(httpx_client, event_data):
|
|||||||
logger.info(f"Текст успешно отредактирован для события {event_data['number']}")
|
logger.info(f"Текст успешно отредактирован для события {event_data['number']}")
|
||||||
else:
|
else:
|
||||||
error_code = edit_result.get('error_code')
|
error_code = edit_result.get('error_code')
|
||||||
|
error_description = edit_result.get('description', 'Unknown error')
|
||||||
|
# Обрабатываем ошибку 400 (сообщение не изменено) как предупреждение
|
||||||
|
if error_code == 400 and "not modified" in error_description.lower():
|
||||||
|
logger.info(f"Сообщение для события {event_data['number']} не требует редактирования (текст идентичен)")
|
||||||
|
return message_id
|
||||||
if error_code == 429:
|
if error_code == 429:
|
||||||
retry_after = edit_result.get('parameters', {}).get('retry_after', 60)
|
retry_after = edit_result.get('parameters', {}).get('retry_after', 60)
|
||||||
raise Exception(f"RetryAfter:{retry_after}")
|
raise Exception(f"RetryAfter:{retry_after}")
|
||||||
raise Exception(f"API error: {edit_result.get('description', 'Unknown error')}")
|
raise Exception(f"API error: {error_description}")
|
||||||
else:
|
else:
|
||||||
|
if edit_text_response.status_code == 400:
|
||||||
|
try:
|
||||||
|
error_data = edit_text_response.json()
|
||||||
|
error_description = error_data.get('description', '')
|
||||||
|
if "not modified" in error_description.lower():
|
||||||
|
logger.info(f"Сообщение для события {event_data['number']} не требует редактирования (текст идентичен)")
|
||||||
|
return message_id
|
||||||
|
except:
|
||||||
|
pass
|
||||||
if edit_text_response.status_code == 429:
|
if edit_text_response.status_code == 429:
|
||||||
retry_after = 60
|
retry_after = 60
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user