fix: pass chat_action from target config to Telegram client
chat_action was stored on NotificationTarget model but never injected into the config dict passed to the dispatcher. Now injected in both watcher and webhook handler, and read by the dispatcher to pass to TelegramClient.send_notification().
This commit is contained in:
@@ -105,6 +105,7 @@ class NotificationDispatcher:
|
||||
) -> dict[str, Any]:
|
||||
bot_token = target.config.get("bot_token")
|
||||
disable_preview = target.config.get("disable_url_preview", False)
|
||||
chat_action = target.config.get("chat_action", "typing")
|
||||
max_media = target.config.get("max_media_to_send", 50)
|
||||
max_group = target.config.get("max_media_per_group", 10)
|
||||
chunk_delay = target.config.get("media_delay", 500)
|
||||
@@ -172,6 +173,7 @@ class NotificationDispatcher:
|
||||
chunk_delay=chunk_delay,
|
||||
max_asset_data_size=max_size,
|
||||
send_large_photos_as_documents=send_large_as_docs,
|
||||
chat_action=chat_action or None,
|
||||
)
|
||||
if not media_result.get("success"):
|
||||
_LOGGER.warning("Text sent OK but media failed for chat %s: %s", chat_id, media_result.get("error"))
|
||||
|
||||
@@ -229,6 +229,9 @@ async def _load_link_data(
|
||||
template_slots[event_key] = tmpl_text
|
||||
|
||||
target_config = dict(target.config)
|
||||
# Inject chat_action for Telegram targets
|
||||
if hasattr(target, 'chat_action') and target.chat_action:
|
||||
target_config["chat_action"] = target.chat_action
|
||||
# Inject bot credentials
|
||||
if target.type == "email":
|
||||
email_bot_id = target.config.get("email_bot_id")
|
||||
|
||||
@@ -176,6 +176,9 @@ async def check_tracker(tracker_id: int) -> dict[str, Any]:
|
||||
template_slots[event_key] = tmpl_text
|
||||
|
||||
target_config = dict(target.config)
|
||||
# Inject chat_action for Telegram targets
|
||||
if hasattr(target, 'chat_action') and target.chat_action:
|
||||
target_config["chat_action"] = target.chat_action
|
||||
# Inject bot credentials for bot-backed target types
|
||||
if target.type == "email":
|
||||
email_bot_id = target.config.get("email_bot_id")
|
||||
|
||||
Reference in New Issue
Block a user