chore: improve loudness call structure
This commit is contained in:
@@ -547,13 +547,13 @@ class Telegram(RPCHandler):
|
|||||||
return None
|
return None
|
||||||
return message
|
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"""
|
"""Determine the loudness of the message - on, off or silent"""
|
||||||
default_noti = "on"
|
default_noti = "on"
|
||||||
|
|
||||||
msg_type = msg_type
|
msg_type = msg["type"]
|
||||||
noti = ""
|
noti = ""
|
||||||
if msg_type in (RPCMessageType.EXIT, RPCMessageType.EXIT_FILL):
|
if msg["type"] == RPCMessageType.EXIT or msg["type"] == RPCMessageType.EXIT_FILL:
|
||||||
sell_noti = (
|
sell_noti = (
|
||||||
self._config["telegram"].get("notification_settings", {}).get(str(msg_type), {})
|
self._config["telegram"].get("notification_settings", {}).get(str(msg_type), {})
|
||||||
)
|
)
|
||||||
@@ -563,7 +563,7 @@ class Telegram(RPCHandler):
|
|||||||
noti = sell_noti
|
noti = sell_noti
|
||||||
else:
|
else:
|
||||||
default_noti = sell_noti.get("*", default_noti)
|
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:
|
else:
|
||||||
noti = (
|
noti = (
|
||||||
self._config["telegram"]
|
self._config["telegram"]
|
||||||
@@ -575,7 +575,7 @@ class Telegram(RPCHandler):
|
|||||||
|
|
||||||
def send_msg(self, msg: RPCSendMsg) -> None:
|
def send_msg(self, msg: RPCSendMsg) -> None:
|
||||||
"""Send a message to telegram channel"""
|
"""Send a message to telegram channel"""
|
||||||
noti = self._message_loudness(msg["type"], msg.get("exit_reason", ""))
|
noti = self._message_loudness(msg)
|
||||||
|
|
||||||
if noti == "off":
|
if noti == "off":
|
||||||
logger.info(f"Notification '{msg['type']}' not sent.")
|
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"
|
loudness = telegram._message_loudness
|
||||||
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"
|
|
||||||
|
|
||||||
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "roi") == "silent"
|
assert loudness({"type": RPCMessageType.ENTRY, "exit_reason": ""}) == "silent"
|
||||||
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "partial_exit") == "off"
|
assert loudness({"type": RPCMessageType.ENTRY_FILL, "exit_reason": ""}) == "on"
|
||||||
|
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": ""}) == "on"
|
||||||
# Default to silent due to "*" definition
|
# 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
|
# Simplified setup for exit
|
||||||
telegram._config["telegram"].update(
|
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
|
# All regular exits are off
|
||||||
assert telegram._message_loudness(RPCMessageType.EXIT, "roi") == "off"
|
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "roi"}) == "off"
|
||||||
assert telegram._message_loudness(RPCMessageType.EXIT, "partial_exit") == "off"
|
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "partial_exit"}) == "off"
|
||||||
assert telegram._message_loudness(RPCMessageType.EXIT, "cust_exit112") == "off"
|
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "cust_exit112"}) == "off"
|
||||||
|
|||||||
Reference in New Issue
Block a user