mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-01-20 05:50:36 +00:00
feat: add nested webhook message support
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user