notify: add ability to notify using a remote action
Signed-off-by: Pieter Willekens <me@pataar.nl>
This commit is contained in:
@@ -35,6 +35,7 @@ class Notifier:
|
||||
prefix_sections = config.get_prefix_sections("notifier")
|
||||
|
||||
self.register_events(config)
|
||||
self.register_remote_actions()
|
||||
|
||||
for section in prefix_sections:
|
||||
cfg = config[section]
|
||||
@@ -53,6 +54,16 @@ class Notifier:
|
||||
continue
|
||||
self.notifiers[notifier.get_name()] = notifier
|
||||
|
||||
def register_remote_actions(self):
|
||||
self.server.register_remote_method("notify", self.notify_action)
|
||||
|
||||
async def notify_action(self, name: str, message: str = ""):
|
||||
if name not in self.notifiers:
|
||||
raise self.server.error(f"Notifier '{name}' not found", 404)
|
||||
notifier = self.notifiers[name]
|
||||
|
||||
await notifier.notify("remote_action", [], message)
|
||||
|
||||
def register_events(self, config: ConfigHelper):
|
||||
|
||||
self.events["started"] = NotifierEvent(
|
||||
@@ -145,10 +156,13 @@ class NotifierInstance:
|
||||
|
||||
self.apprise.add(self.url)
|
||||
|
||||
async def notify(self, event_name: str, event_args: List) -> None:
|
||||
async def notify(
|
||||
self, event_name: str, event_args: List, message: str = ""
|
||||
) -> None:
|
||||
context = {
|
||||
"event_name": event_name,
|
||||
"event_args": event_args
|
||||
"event_args": event_args,
|
||||
"event_message": message
|
||||
}
|
||||
|
||||
rendered_title = (
|
||||
|
Reference in New Issue
Block a user