feat: add nested webhook message support

pull/12184/head
Matthias 8 months ago
parent 2542102280
commit 48bd5cb2c0

@ -81,6 +81,20 @@ class Webhook(RPCHandler):
return None
return valuedict
def recursive_format(self, obj: dict | list | str, msg: RPCSendMsg):
"""
Format the given object using the provided message.
"""
match obj:
case dict():
return {k: self.recursive_format(v, msg) for k, v in obj.items()}
case list():
return [self.recursive_format(item, msg) for item in obj]
case str():
return obj.format(**msg)
case _:
return obj
def send_msg(self, msg: RPCSendMsg) -> None:
"""Send a message to telegram channel"""
try:
@ -90,7 +104,7 @@ class Webhook(RPCHandler):
logger.debug("Message type '%s' not configured for webhooks", msg["type"])
return
payload = {key: value.format(**msg) for (key, value) in valuedict.items()}
payload = self.recursive_format(valuedict, msg)
self._send_msg(payload)
except KeyError as exc:
logger.exception(

Loading…
Cancel
Save