mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-01-20 14:00:38 +00:00
chore: improve loudness call structure
This commit is contained in:
@@ -547,13 +547,13 @@ class Telegram(RPCHandler):
|
||||
return None
|
||||
return message
|
||||
|
||||
def _message_loudness(self, msg_type: RPCMessageType, exit_reason: str) -> str:
|
||||
def _message_loudness(self, msg: RPCSendMsg) -> str:
|
||||
"""Determine the loudness of the message - on, off or silent"""
|
||||
default_noti = "on"
|
||||
|
||||
msg_type = msg_type
|
||||
msg_type = msg["type"]
|
||||
noti = ""
|
||||
if msg_type in (RPCMessageType.EXIT, RPCMessageType.EXIT_FILL):
|
||||
if msg["type"] == RPCMessageType.EXIT or msg["type"] == RPCMessageType.EXIT_FILL:
|
||||
sell_noti = (
|
||||
self._config["telegram"].get("notification_settings", {}).get(str(msg_type), {})
|
||||
)
|
||||
@@ -563,7 +563,7 @@ class Telegram(RPCHandler):
|
||||
noti = sell_noti
|
||||
else:
|
||||
default_noti = sell_noti.get("*", default_noti)
|
||||
noti = sell_noti.get(str(exit_reason), default_noti)
|
||||
noti = sell_noti.get(str(msg["exit_reason"]), default_noti)
|
||||
else:
|
||||
noti = (
|
||||
self._config["telegram"]
|
||||
@@ -575,7 +575,7 @@ class Telegram(RPCHandler):
|
||||
|
||||
def send_msg(self, msg: RPCSendMsg) -> None:
|
||||
"""Send a message to telegram channel"""
|
||||
noti = self._message_loudness(msg["type"], msg.get("exit_reason", ""))
|
||||
noti = self._message_loudness(msg)
|
||||
|
||||
if noti == "off":
|
||||
logger.info(f"Notification '{msg['type']}' not sent.")
|
||||
|
||||
@@ -2923,21 +2923,23 @@ 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"
|
||||
# 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"
|
||||
loudness = telegram._message_loudness
|
||||
|
||||
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "roi") == "silent"
|
||||
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "partial_exit") == "off"
|
||||
assert loudness({"type": RPCMessageType.ENTRY, "exit_reason": ""}) == "silent"
|
||||
assert loudness({"type": RPCMessageType.ENTRY_FILL, "exit_reason": ""}) == "on"
|
||||
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": ""}) == "on"
|
||||
# Default to silent due to "*" definition
|
||||
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "cust_exit112") == "silent"
|
||||
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": ""}) == "silent"
|
||||
assert loudness({"type": RPCMessageType.PROTECTION_TRIGGER, "exit_reason": ""}) == "off"
|
||||
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "roi"}) == "silent"
|
||||
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "partial_exit"}) == "off"
|
||||
# Not given key defaults to on
|
||||
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "cust_exit112"}) == "on"
|
||||
|
||||
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "roi"}) == "silent"
|
||||
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "partial_exit"}) == "off"
|
||||
# Default to silent due to "*" definition
|
||||
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "cust_exit112"}) == "silent"
|
||||
|
||||
# Simplified setup for exit
|
||||
telegram._config["telegram"].update(
|
||||
@@ -2960,8 +2962,8 @@ def test_noficiation_settings(default_conf_usdt, mocker):
|
||||
}
|
||||
)
|
||||
|
||||
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "roi") == "on"
|
||||
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "roi"}) == "on"
|
||||
# All regular exits are off
|
||||
assert telegram._message_loudness(RPCMessageType.EXIT, "roi") == "off"
|
||||
assert telegram._message_loudness(RPCMessageType.EXIT, "partial_exit") == "off"
|
||||
assert telegram._message_loudness(RPCMessageType.EXIT, "cust_exit112") == "off"
|
||||
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "roi"}) == "off"
|
||||
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "partial_exit"}) == "off"
|
||||
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "cust_exit112"}) == "off"
|
||||
|
||||
Reference in New Issue
Block a user