This is a Telegram bot, to send you a message every time the pollen threshold reaches above a certain level.
It uses the Met Office's pollen forecast
Message https://t.me/pollen_count_bot on Telegram to use.
| Requirement | Version |
|---|---|
| Python | 3.11.1 |
pip install -r requirements.txtpython bot.pypython bot.py startTo obtain an access token for telegram, see help page, but in essence, talk to the BotFather.
The access token is used via an environment variable, or a .env file, which is not tracked by git.
Also in the environment should be an "admin ID", where errors are sent via the error handler.
touch .envTELEGRAM_BOT_ACCESS_TOKEN=...
ADMIN_USER_ID=...To store each user's location, reminder preference, and reminder threshold, a persistent pickle file is used. This is not tracked by git. This uses the Persistence API from python-telegram-bot.
persistent_data = PicklePersistence(filepath="bot_data.pickle")
application = Application.builder().token(API_KEY).persistence(persistent_data).build()ssh alifeee@...
sudo apt-get update
sudo apt install python3.11-venv
sudo mkdir -p /usr/alifeee
sudo chown alifeee:alifeee /usr/alifeee
cd /usr/alifeee
git clone [email protected]:alifeee/pollen_bot.git
sudo adduser --system --no-create-home --group pollen_bot
# sudo cat /etc/group
# sudo cat /etc/passwd
# sudo -u pollen_bot whoami
python3 -m venv env
./env/bin/pip install -r requirements.txt
sudo chown -R alifeee:pollen_bot .scp .env alifeee@...:~/python/pollen_bot/
sudo chown -R alifeee:pollen_bot .envcp pollen_bot.service /etc/systemd/system/pollen_bot.service
sudo systemctl enable pollen_bot.service
sudo systemctl start pollen_bot.service
sudo systemctl status pollen_bot.servicerunit is a bit like systemd. See FAQ.
mkdir /home/alifeee/python/pollen_bot/logs
sudo mkdir /etc/sv/pollen_bot
sudo echo '#!/bin/sh
#cd /home/alifeee/python/pollen_bot & ./env/bin/python3 bot.py
# redirect stderr to stdout
exec 2>&1
# start program
exec /home/alifeee/python/pollen_bot/env/bin/python3 /home/alifeee/python/pollen_bot/bot.py
' > /etc/sv/pollen_bot/run
sudo mkdir /etc/sv/pollen_bot/log
sudo echo '#!/bin/sh
exec svlogd -tt /home/alifeee/python/pollen_bot/logs
' > /etc/sv/pollen_bot/log/run
sudo ln -s /etc/sv/pollen_bot /etc/service/
sudo sv start pollen_bot
sudo sv stop pollen_bot
sudo sv status pollen_bot
sudo sv restart pollen_botLog files are stored in the folder specified above, so for this script, they are in ~/python/pollen_bot/logs.
ssh alifeee@...
cd ~/python/pollen_bot
git pull
sudo sv restart pollen_bot