[ZILANT] отладка до-редактирования ссылок в пост
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
+14
-12
@@ -22,7 +22,7 @@ from telegram_relay import (
|
||||
EDIT_LINKS_INITIAL_DELAY_SEC,
|
||||
EDIT_LINKS_MAX_ATTEMPTS,
|
||||
EDIT_LINKS_RETRY_INTERVAL_SEC,
|
||||
published_text_has_links,
|
||||
published_message_has_links,
|
||||
)
|
||||
from season_links import subscription_start_link
|
||||
|
||||
@@ -157,7 +157,7 @@ async def download_image(image_url, httpx_client):
|
||||
async def _edit_post_add_links(bot, message_id, message_has_image, final_text, vk_post_id):
|
||||
"""
|
||||
Второй шаг публикации: editMessageCaption/Text со ссылками.
|
||||
Повторяет попытку, пока в ответе API нет href= (защита от гонки после sendPhoto).
|
||||
Повторяет попытку, пока в ответе API нет text_link / меток ссылок.
|
||||
"""
|
||||
await asyncio.sleep(EDIT_LINKS_INITIAL_DELAY_SEC)
|
||||
|
||||
@@ -171,6 +171,7 @@ async def _edit_post_add_links(bot, message_id, message_has_image, final_text, v
|
||||
parse_mode='HTML',
|
||||
)
|
||||
published_text = edited.caption or ""
|
||||
entities = edited.caption_entities or []
|
||||
else:
|
||||
edited = await bot.edit_message_text(
|
||||
chat_id=CHANNEL_ID,
|
||||
@@ -180,8 +181,9 @@ async def _edit_post_add_links(bot, message_id, message_has_image, final_text, v
|
||||
disable_web_page_preview=True,
|
||||
)
|
||||
published_text = edited.text or ""
|
||||
entities = edited.entities or []
|
||||
|
||||
if published_text_has_links(published_text):
|
||||
if published_message_has_links(published_text, entities):
|
||||
logger.info(
|
||||
f"Ссылки добавлены для записи VK ID {vk_post_id} "
|
||||
f"(попытка {attempt}/{EDIT_LINKS_MAX_ATTEMPTS})"
|
||||
@@ -189,7 +191,7 @@ async def _edit_post_add_links(bot, message_id, message_has_image, final_text, v
|
||||
return True
|
||||
|
||||
logger.warning(
|
||||
f"editMessage* ok, но href= не найден в ответе "
|
||||
f"editMessage* ok, но ссылки не обнаружены в ответе "
|
||||
f"(попытка {attempt}/{EDIT_LINKS_MAX_ATTEMPTS}) для VK ID {vk_post_id}"
|
||||
)
|
||||
except TimedOut as e:
|
||||
@@ -208,15 +210,15 @@ async def _edit_post_add_links(bot, message_id, message_has_image, final_text, v
|
||||
raise RetryAfterException(getattr(e, 'retry_after', 60))
|
||||
err = str(e).lower()
|
||||
if "not modified" in err:
|
||||
logger.warning(
|
||||
f"message is not modified (попытка {attempt}/{EDIT_LINKS_MAX_ATTEMPTS}) "
|
||||
f"для VK ID {vk_post_id} — повтор"
|
||||
)
|
||||
else:
|
||||
logger.warning(
|
||||
f"Ошибка edit ссылок (попытка {attempt}/{EDIT_LINKS_MAX_ATTEMPTS}) "
|
||||
f"для VK ID {vk_post_id}: {e}"
|
||||
logger.info(
|
||||
f"Caption уже содержит ссылки для VK ID {vk_post_id} "
|
||||
f"(message is not modified, попытка {attempt}/{EDIT_LINKS_MAX_ATTEMPTS})"
|
||||
)
|
||||
return True
|
||||
logger.warning(
|
||||
f"Ошибка edit ссылок (попытка {attempt}/{EDIT_LINKS_MAX_ATTEMPTS}) "
|
||||
f"для VK ID {vk_post_id}: {e}"
|
||||
)
|
||||
except RetryAfterException:
|
||||
raise
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user