Automatically get notifications for new posts on your favorite RSS/Atom feeds.
Project description
notifeed
Automatically get notifications for new posts on your favorite RSS/Atom feeds.
Installation
pip3 install notifeed
# or
git clone git@github.com:loganswartz/notifeed.git && pip3 install ./notifeed
Usage
~ $ notifeed -h
Usage: notifeed [OPTIONS] COMMAND [ARGS]...
Options:
--debug Show debug logging messages
--db PATH Path to an SQLite database, or where to save a new one
-h, --help Show this message and exit.
Commands:
add
delete
list
run
set
Notifeed has 3 main things that need to be configured:
- Feeds to watch
- Available notification channels
- The actual configured notifications (i.e. on a new post to X, send a notification to Y)
To configure these values, you can use notifeed add <feed|channel|notification> ...
.
Here are some examples on how to use them:
Working with Feeds
$ notifeed add feed Dolphin https://dolphin-emu.org/blog/feeds/
Added Dolphin!
$ notifeed add feed MelonDS http://melonds.kuribo64.net/rss.php
Added MelonDS!
$ notifeed list feeds
Currently watching:
Dolphin (https://dolphin-emu.org/blog/feeds/)
MelonDS (http://melonds.kuribo64.net/rss.php)
$ notifeed delete feed Dolphin
Deleted Dolphin!
Working with Channels
$ notifeed add channel --type slack MySlackWorkspace <Slack Webhook URL>
Added MySlackWorkspace!
$ notifeed add channel MyDiscordChannel <Discord Webhook URL>
Added MyDiscordChannel!
$ notifeed delete channel MySlackWorkspace
Deleted MySlackWorkspace!
$ notifeed list channels
Available notification channels:
MyDiscordChannel (discord, <Discord Webhook URL>)
Working with Notifications
$ notifeed add notification Dolphin MySlackWorkspace
Added notification for new posts to Dolphin!
$ notifeed list notifications
Configured notifications:
New posts to Dolphin --> MySlackWorkspace
$ notifeed delete notification Dolphin MySlackWorkspace
Disabled notifications for Dolphin on MySlackWorkspace
Notifeed will start listening for new posts when you start it via notifeed run
.
The best way to deploy this is setting it up as a systemctl service, using the
provided template service file.
Set poll interval
$ notifeed set poll_interval 1800 # 1800 seconds = 30 minutes
The default polling interval is 15 minutes.
Available Notification Channels
- Slack
- Discord
Currently, Slack and Discord are supported. Other connectors can be added by
implementing a subclass of the NotificationChannelAsync
class, specifically
the notify
method. notify
is called with one argument, post
(which is of
type notifeed.Post
), when a new post is found on a feed. Notifeed will
automatically import any NotificationChannel subclasses found in modules within
the notifications
folder of this repo, and the notifications/plugins
path
specifically is gitignore'd to allow symlinking your own modules into an
importable location.
Misc
Configuration data is stored in an SQLite database file. By default, this lives in the root of the project folder.
Service Installation
Install the service file by symbolically linking to it from /etc/systemd/system/
:
$ sudo ln -s /path/to/notifeed/notifeed.service /etc/systemd/system/notifeed.service
Then, reload the service daemon, and start the service:
$ sudo systemctl daemon-reload && sudo systemctl start notifeed
You'll probably also want to start the service automatically on startup:
$ sudo systemctl enable notifeed
Once the service is running, you can setup notifications, feeds, etc as you
would normally with the notifeed
command.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file notifeed-1.2.0.tar.gz
.
File metadata
- Download URL: notifeed-1.2.0.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.0.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5408deaa11313261ae54c1c3329b225b63c7a97d00863bc99753abf711c92b25 |
|
MD5 | be1b091c58e22d960496e322abc91f97 |
|
BLAKE2b-256 | c87b8d2b72fb2cc3de4ee503d835cc5090981ef952e57f4735b7cf2b8ec6be18 |
File details
Details for the file notifeed-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: notifeed-1.2.0-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.0.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41bebdae50688bfb3f115db1ce474ca89dbc46fabc68d221ceb65c1e70488ec3 |
|
MD5 | d77417e3b32944d4c9d4353d9a48fb37 |
|
BLAKE2b-256 | 1a684ddceead55479213ac1f0cfff68b62fce38dc6b2308cf13680ee2fda7f00 |