Add alert notifications for multiple providers via Apprise
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
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
- 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?