notify: add ability to notify using a remote action

Signed-off-by: Pieter Willekens <me@pataar.nl>
This commit is contained in:
pataar
2022-08-30 22:27:47 +02:00
committed by Eric Callahan
parent 5d856b9c49
commit 21bb17743f
2 changed files with 37 additions and 3 deletions

View File

@@ -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 = (