A telegram bot that publishes items from an RSS feed into a Telegram channel.
Written for Habr.com but can be used for any RSS feed.
First, you would need to register a bot for Telegram using @BotFather. See here for more details.
Then, create a Telegram channel to post messages into. Note that you may use the same bot for multiple channels.
The, you should add your bot to the channel as an administrator.
Finally, create a .env file:
TELEGRAM_TOKEN=my-telegram-bot-token TELEGRAM_CHANNEL=@MyAwesomeChannel RSS_FEED=https://habr.com/ru/rss/all/Here:
TELEGRAM_TOKENis the token you obtained from@BotFather, e.g.1234567890:AABBCCdde-ffGGHHiiJJkkLLmmNNooPPqqRR.TELEGRAM_CHANNELis the name of the channel you created, e.g.@MyAwesomeChannel.RSS_FEEDis an URL of the RSS feed you want to publish, e.g.https://habr.com/ru/rss/all/.
See example.env for more details.
If you want to save a copy of each RSS feed item into a locac directory, add the following variable:
CC_PATH=/data/cc/
Now, you may create a docker-compose.yaml file that will instruct Docker how to run the bot:
version: '3' services: habrabot: image: ghcr.io/kapitanov/habrabot:latest restart: always env_file: ./.env environment: BOLTDB_PATH: "/data/boltdb.dat" logging: driver: "json-file" options: max-size: "10m" max-file: "1" volumes: - ./data/:/dataAt this point, you should have the following files in your working directory:
$ ls -1a docker-compose.yaml .envNow, you may run the bot using the following command:
docker compose up -d