Skip to content

Add alert notifications for multiple providers via Apprise

Aerion requested to merge Aerion/kresus:add-apprise-notifications into master

Goal

This adds a way to receive notifications on different providers, by adding an external service: apprise.

I wanted to receive Kresus alerts on my phone, for every transaction. But using a specific notification provider (not email) and receiving only the important information (transaction detail without greetings).

Apprise

Apprise allows you to send a notification to almost all of the most popular notification services available to us today such as: Telegram, Discord, Slack, Amazon SNS, Gotify, etc.

Apprise is:

  • in Python (same as weboob)
  • quite light
  • externalizing the effort of supporting multiple providers
  • an external binary (same as weboob)

I've been using it for a couple of months, I receive all notifications without any problem.

Changes

  • reused the (unused) notifications code
  • when a notification is received, apprise binary is called via its cli usage to forward the notification to the provider
  • alerts settings has a new configuration parameter for the Apprise notifications url
  • with or without smtp, the notifications page is accessible (as alerts can now be used without smtp)

Demo

Example is shown with kresus in dev, and a fresh gotify server (5s to setup). Note that the test notification is received correctly. kresus_test_notif_video

Alert content

alert_example

Current limitations

  • no way to choose receive email for an alert and no notification for it. For the whole group of alerts, it's either email+notification, only email, or only notification.
  • apprise notifications are only triggered on alerts, not reports
  • image The input box is quite small, I'm not comfortable enough to know the correct way to change the css in the codebase for this input (width 40% would be okay). I'm guessing doing it in client/css/sections/settings/all.css.
  • the explanation on what is this Apprise configuration url can be strange at first sight, is the explanation enough? apprise_url_explanation
Edited by Aerion

Merge request reports