Collection of plugins originally written for the BitBar macOS menubar application, found here, but now adapted to run in the SwiftBar macOS menubar application found here (https://github.com/swiftbar/SwiftBar)
The Message Notifier currently supports retrieval of unread messages from the following services:
The Message Notifier requires any Python version between Python 3.6 and 3.10 (versions later than Python 3.10 are not yet supported), which can be built from source, installed via Homebrew, or installed using pyenv
(recommended).
Before installing the Python dependencies, you will need to install several Homebrew packages by running:
brew install libffi libheif
Next, install all Python dependencies found in requirements.txt by running:
pip install -r requirements.txt
Additional third-party dependencies:
- terminal-notifier*: can be installed by running:
brew install terminal-notifier
- MediaInfo*: can be installed from the macOS App Store (costs $0.99)
*The developer of the Message Notifier plugin for SwiftBar is NOT affiliated with any of these third-party projects.
In order to retrieve unread messages from supported services, you must follow these steps:
- Make a copy of resources/credentials/EXAMPLE-private.json and rename that copy to just
private.json
. - Remove any sections for messaging services you do not plan to use.
- For all remaining services, replace the respective dummy values with their real counterparts.
- For iMessage/SMS, you will simply need your macOS username.
- For Reddit, you will need to log in to your account(s), create an app for each account, and copy the values into
private.json
. - For Telegram, you will need to follow the instructions here to create an App ID, and copy the values in to
private.json
.
Additionally, both Reddit and Telegram use tokens to prevent you having to re-authenticate your app every time you query them, so in order to get the Reddit refresh token and the Telegram session string, you must run the respective scripts found in resources/scripts:
- Reddit: get_reddit_refresh_token.py
- Telegram: get_telegram_session_string.py