A Discord bot that lets you broadcast instant Pushover notifications to a list of subscribers. Users manage their own subscriptions privately via DM.
- Users DM the bot with their Pushover user key to subscribe.
- You (or anyone with access) type
!alert <message>in the Discord server. - Every subscriber receives an instant Pushover notification on their device.
- Python 3.12+
- A Discord bot token
- A Pushover account and application token
git clone https://github.com/XyleExile/ALERT-IT
cd ALERT-ITpip install -r requirements.txtIn the Discord Developer Portal, go to your bot's Bot tab and enable:
- ✅ Message Content Intent
- ✅ Server Members Intent
Both are required for the bot to read messages and verify guild membership from DMs.
export DISCORD_BOT_TOKEN=your_discord_bot_token
export PUSHOVER_APP_TOKEN=your_pushover_app_tokensubscribers.json is excluded from the repo to protect user data. Create it from the example file before running the bot:
cp subscribers.json.example subscribers.jsonYou can leave it as-is — the bot will populate it automatically as users subscribe via DM. If you want to seed it manually, follow the format inside subscribers.json.example.
python dyor_arba.pyUsed in: Any Discord server channel
Sends a Pushover notification to all current subscribers.
!alert BTC breaking $100k right now 🚀
Used in: Private DM with the bot only
Registers your Pushover user key to receive alerts. If you've subscribed before with a different key, it will be updated.
!subscribe abc123xyz
⚠️ If you use this command in a public channel, the bot will immediately delete your message and warn you via DM. Never share your Pushover key in public.
Used in: Private DM with the bot only
Removes you from the subscriber list. You will stop receiving all alerts.
!unsubscribe
⚠️ Same as above — using this in a public channel will result in your message being deleted.
├── main.py # Main bot logic and Discord event handlers
├── subscribers_manager.py # Subscriber CRUD operations (JSON-backed)
├── subscribers.json # Subscriber data store — gitignored, created from .example
├── subscribers.json.example # Safe template to copy from when setting up
├── requirements.txt # Python dependencies
└── .gitignore # Excludes sensitive files from version control
The following .gitignore is recommended for this project:
# Sensitive data
subscribers.json
.env
# Python bytecode
__pycache__/
*.pyc
*.pyo
# Virtual environments
.venv/
venv/
env/
# Python packaging
*.egg-info/
dist/
build/
subscribers.jsonis intentionally excluded from version control as it contains real Discord IDs and Pushover keys. Always usesubscribers.json.exampleas the committed reference.
The subscribers.json.example template shows the expected format:
[
{
"discord_id": "YOUR_DISCORD_USER_ID",
"pushover_key": "YOUR_PUSHOVER_USER_KEY"
}
]You can also add entries manually by editing subscribers.json directly while the bot is not running.
| Package | Purpose |
|---|---|
discord.py |
Discord bot framework |
requests |
HTTP requests to Pushover API |