This is a Telegram bot written in Go that notifies users about Pokémon encounters based on their preferences. The bot fetches Pokémon encounters from a MySQL database (Golbat / RDM Schema) and allows users to configure filters like IV, level, and distance. Notifications are sent as private messages.
- 📨 Personalized Pokémon Alerts – Users can subscribe to Pokémon notifications based on ID, IV, level, and distance.
- 🌍 Multi-Language Support – Pokémon names and move names are displayed based on user language settings (currently supports English and German).
- 📍 Location-Based Filtering – Users can share their location to receive alerts for Pokémon within a specified radius.
- 🛠 Flexible Configuration – Users can adjust settings via
/settings, including notification preferences, sticker usage, and language. - 📊 Prometheus Metrics – The bot exposes Prometheus metrics to monitor performance and activity.
- 🗑️ Auto Cleanup – Optionally deletes expired notifications.
- 🔔 Support for 100% and 0% IV Pokémon Alerts – Users can opt-in for alerts on perfect or worst IV Pokémon.
git clone https://github.com/michikrug/PoGoBot.git
cd PoGoBotCreate a .env file and define the required variables:
BOT_TOKEN=your-telegram-bot-token
BOT_ADMINS=12345678,87654321
BOT_DB_USER=dbuser
BOT_DB_PASS=dbpassword
BOT_DB_NAME=bot_database
BOT_DB_HOST=localhost
SCANNER_DB_USER=scanner_db_user
SCANNER_DB_PASS=scanner_db_password
SCANNER_DB_NAME=scanner_database
SCANNER_DB_HOST=localhostgo run main.goBuild and run the bot in a Docker container:
docker build -t pogobot .
docker run --env-file .env pogobot| Command | Description |
|---|---|
/start |
Starts the bot and sets default settings |
/help |
Show help information |
/settings |
Open settings to adjust preferences |
/list |
List all subscriptions |
/subscribe <pokemon_name> [min-iv] [min-level] [max-distance] |
Subscribe to Pokémon alerts |
/unsubscribe <pokemon_name> |
Unsubscribe from Pokémon alerts |
The bot exposes metrics at:
http://localhost:9001/metricsbot_notifications_total– Total number of notifications sent.bot_messages_total– Total number of messages sent.bot_cleanup_total– Number of expired messages cleaned up.bot_encounters_count– Number of Pokémon encounters retrieved.bot_users_count– Number of users subscribed to notifications.bot_subscription_count– Total number of subscriptions.bot_subscription_active_count– Active Pokémon subscriptions.
Pull requests are welcome! Please follow the existing code structure and submit any improvements.
This project is licensed under the GNU General Public License v3. See the LICENSE file for details.