From c58b1f0fd24d4466a850668ff60da1c46055b621 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 6 Nov 2024 20:07:02 +0100 Subject: [PATCH] feat: add "*" to define custom default for non-defined exit reasons --- freqtrade/rpc/telegram.py | 2 ++ tests/rpc/test_rpc_telegram.py | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 91395b8cc..ad6c918db 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -558,10 +558,12 @@ class Telegram(RPCHandler): sell_noti = ( self._config["telegram"].get("notification_settings", {}).get(str(msg_type), {}) ) + # For backward compatibility sell still can be string if isinstance(sell_noti, str): noti = sell_noti else: + default_noti = sell_noti.get("*", default_noti) noti = sell_noti.get(str(exit_reason), default_noti) else: noti = ( diff --git a/tests/rpc/test_rpc_telegram.py b/tests/rpc/test_rpc_telegram.py index 98924a787..ee2eb4616 100644 --- a/tests/rpc/test_rpc_telegram.py +++ b/tests/rpc/test_rpc_telegram.py @@ -2912,6 +2912,7 @@ def test_noficiation_settings(default_conf_usdt, mocker): "exit_fill": { "roi": "silent", "partial_exit": "off", + "*": "silent", # Default to silent }, "exit_cancel": "on", "protection_trigger": "off", @@ -2925,15 +2926,18 @@ def test_noficiation_settings(default_conf_usdt, mocker): assert telegram._message_loudness(RPCMessageType.ENTRY, "") == "silent" assert telegram._message_loudness(RPCMessageType.ENTRY_FILL, "") == "on" assert telegram._message_loudness(RPCMessageType.EXIT, "") == "on" - assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "") == "on" + # Default to silent due to "*" definition + assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "") == "silent" assert telegram._message_loudness(RPCMessageType.PROTECTION_TRIGGER, "") == "off" assert telegram._message_loudness(RPCMessageType.EXIT, "roi") == "silent" assert telegram._message_loudness(RPCMessageType.EXIT, "partial_exit") == "off" + # Not given key defaults to on assert telegram._message_loudness(RPCMessageType.EXIT, "cust_exit112") == "on" + assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "roi") == "silent" assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "partial_exit") == "off" - # Default to on - assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "cust_exit112") == "on" + # Default to silent due to "*" definition + assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "cust_exit112") == "silent" # Simplified setup for exit telegram._config["telegram"].update(