The bot is now in beta version
A telegram bot to organize PoGo raid that it can be self hosted.
If you publish a raid screenshot in a group where this bot is present, it identifies the raid an provides you a poll to organize the raid.
The bot needs Python version 3.7 or newer.
You can install pogoraidbot
from pypi
:
$ pip install pogoraidbot
The bot needs an installation of Tesseract OCR and a pre-trained neural network for english. Both can be found from the official Arch and Ubuntu repositories.
Refer to this link.
The bot requires a dedicated instance of Redis database.
Refer to this link.
The bot needs to know, the bot api token, that you can obtain from @BotFather and the address of redis instance.
To understand how to provide these information to the bot:
$ python3 -m pogoraidbot
usage: pogoraidbot [-h] [-t TOKEN] [-r REDIS] [-a SUPERADMIN] [-b BOSSES_FILE] [-o BOSSES_EXPIRATION]
[-g GYMS_FILE] [-y GYMS_EXPIRATION] [-e] [-d DEBUG_FOLDER] [-v] [--info] [--debug]
optional arguments:
-h, --help show this help message and exit
-t TOKEN, --token TOKEN
telegram bot token
-r REDIS, --redis REDIS
redis url in "redis://{host}[:port]/{db}" format
-a SUPERADMIN, --superadmin SUPERADMIN
superadmin's id
-b BOSSES_FILE, --bosses-file BOSSES_FILE
JSON or CSV file contains possible pokémons in the raids. It can be also
provided over http(s)
-o BOSSES_EXPIRATION, --bosses-expiration BOSSES_EXPIRATION
Validity of the bosses list in hours
-g GYMS_FILE, --gyms-file GYMS_FILE
JSON file contains gyms and their coordinates. It can be also provided over
http(s)
-y GYMS_EXPIRATION, --gyms-expiration GYMS_EXPIRATION
Validity of the gyms list in hours
-e, --env Use environment variables for the configuration
-d DEBUG_FOLDER, --debug-folder DEBUG_FOLDER
debug folder
-v number of -v specifics level of verbosity
--info equal to -vv
--debug equal to -vvv
An example:
$ python3 -m pogoraidbot -t [BOT_TOKEN] -r redis://192.168.15.2:4044/3
The dockerized version of the bot requires docker
and docker-compose
to work.
Refer to this link.
You can choose two kinds of setup:
-
Download .env and docker-compose.yaml files and put them in a folder.
-
Edit them to adapt the setup to your requirements(see below).
-
Run the containers.
docker-compose up
-
Clone the whole repo and init the submodule.
git clone https://github.com/RobertoBochet/pogoraidbot-dockerized.git ./pogoraidbot cd pogoraidbot git submodule update --init
-
Edit the .env and docker-compose.yaml to adapt the setup to your requirements(see below).
-
Build and start the containers.
docker-compose build docker-compose up
In .env replace:
[BOT_TOKEN]
with your bot's token[SUPERADMIN_ID]
with the Telegram id of the main admin[TIME_ZONE]
with your time zone (refer to this table on column TZ database name)
-
Add support to gym identification
In .env set the env
PGRB_BOT_GYMS_FILE
with the position of your gyms file. -
Add support to boss identification
In .env set the env
PGRB_BOT_BOSSES_FILE
with the position of your bosses file. -
Make redis data persistent
Uncomment the line
command: ["redis-server", "--appendonly", "yes"]
in docker-compose.yaml.If you want make the redis data persistent also to container destruction uncomment also the volumes section of the redis service and set the env
PGRB_REDIS_PATH
. -
Assign static IP for the virtual network
Uncomment all the three networks sections in docker-compose.yaml and set the three env
PGRB_NETWORK_*
with IP and subnet in .env.
In this project are used the following Python libraries:
- python-telegram-bot (LGPLv3 License)
- opencv-python (MIT License)
- pytesseract (GPLv3 License)
- redis (MIT License)
- requests (Apache 2.0 License)