A Telegram bot to get you the latest deals from websites like https://www.ozbargain.com.au and https://amazon.com.au. Let Kramer watch deals so you don't have to. Giddy up!
- Uses Telegram Bot API for instant notifications
- Written in Go and can be deployed with a single binary (Dockerfile included)
- Subscribe to good deals, super deals or setup your own custom deals by watching specific keywords
- User data is written to a Mongo NoSQL database for easy migration (formerly Sqlite)
- Keep track of deals already sent to avoid duplicate sending
- Supports scraping www.ozbargain.com.au - Good and super deals
- Supports scraping www.amazon.com.au (via Camel Camel Camel RSS) - Top daily and weekly deals
- Supports Android TV notifications
- API to access user and deal data
- Ability to send maintenance messages / announcements to all users
- Slick web app to manage user preferences https://www.github.com/intothevoid/kramerbotui
The following API endpoints are available -
/users - Get user data for all users
/users/:chatid - Get user data by chat id
/deals - Get deal data for latest deals by the scraper
/signup - Signup from accompanying web app https://www.github.com/intothevoid/kramerbotui
/preferences - Update user preferences
/authenticate - User authentication
You must have the required environment variables for Kramerbot to function correctly. See section 'Required environment variables' for more details. Kramerbot can be deployed using the foll. command, after required environment variables have been set -
go build .
./kramerbot
TELEGRAM_TOKEN_API=<your_token>
GIN_MODE=release
KRAMERBOT_ADMIN_PASS=<your_admin_password>
sudo docker pull mongo:4.4.18
cd scripts
sudo ./start_mongo.sh
To build a Docker image of Kramerbot use the command -
sudo docker build -t kramerbot:latest .
Create a token.env file with your Telegram API token (used in step below) -
TELEGRAM_TOKEN_API=<your_token>
GIN_MODE=release
KRAMERBOT_ADMIN_PASS=<your_admin_password>
To deploy your container, use the command -
cd scripts
sudo ./start_kramer.sh