No Description

Fabian Peter Hammerle e2c3768208 env: upgrade mypy from v0.812 to v0.902 1 week ago
.github 8d1e5257c4 pipeline: authenticate at via GITHUB_TOKEN instead of COVERALLS_REPO_TOKEN to no longer require manual configuration of secret 2 months ago
docs 225189d547 readme: added screenshots 4 months ago
location_guessing_game_telegram_bot 8831e41734 loosen version constraint for `python-telegram-bot` to restore compatibility with python3.5 4 months ago
tests 1044c8ce44 test command line entrypoint 4 months ago
.dockerignore 558bb9bc90 configure python package; added readme 4 months ago
.gitignore fa44f5ac67 added gitignore list 4 months ago
.pylintrc c37f9e76c5 pylint: disable irrelevant checks 4 months ago e24e72aea5 release v0.1.1 4 months ago
COPYING ca0541b65c added GPLv3+ 4 months ago
Dockerfile 16d039e8bd fix dockerfile: remove "sanitized-package" package added by dependabot 1 week ago
Makefile ca0541b65c added GPLv3+ 4 months ago
Pipfile adbcf26ba8 dev env: add upper version constraint for `click` to keep compatibility with python3.5 4 weeks ago
Pipfile.lock b116d4bc43 build(deps-dev): bump mypy from 0.812 to 0.902 1 week ago 225189d547 readme: added screenshots 4 months ago
ansible-playbook-example.yml 7e12a91a6d added sample playbook 4 months ago
docker-compose.yml bded47d485 setup docker-compose 4 months ago
mypy.ini d488c3918b mypy: ignore imports of python-telegram-bot 4 months ago
pyproject.toml 558bb9bc90 configure python package; added readme 4 months ago fa25adcf4c setuptools-scm: ignore non-release tags 4 months ago

Location Guessing Game Telegram Bot 🏞️ 🌍 📌

CI Pipeline Status Coverage Status Last Release Compatible Python Versions

Basic Telegram Bot Sending Random Wikimedia Commons Photos



  1. Download a dataset of photos via the WikiMap API, for instance:

    wget --restrict-file-names=windows '|9|46|18'
    1. Generate a bot API token by sending /newbot to BotFather
    2. Install bot via pip3 install --user --upgrade location-guessing-game-telegram-bot (or use docker / podman, see below)


    1. Launch bot: location-guessing-game-telegram-bot --telegram-token-path file-containing-api-token --wikimap-export-path wikimap-export.json
    2. Open a chat with the bot in Telegram by searching for the bot's name previously sent to BotFather
    3. Send message /photo, wait, and repeat
    4. Optionally add the bot to a group chat.

    Docker / Podman 🐳

    Pre-built docker images are available at

    $ sudo docker run --name location_guessing_game_telegram_bot \
    -v /file/containing/api-token:/telegram-token:ro -e TELEGRAM_TOKEN_PATH=/telegram-token \
    -v /wikimap/export.json:/wikimap-export.json:ro -e WIKIMAP_EXPORT_PATH=/wikimap-export.json \
    --read-only --cap-drop ALL --security-opt no-new-privileges \
    --cpus 0.4 --memory 128M \

Optionally, replace sudo docker with podman.

Annotation of signed git tags docker/* contains docker image digests:

Detached signatures of images are available at (exluding automatically built latest tag).

Docker Compose 🐙

  1. Clone this repository.
  2. Edit paths in docker-compose.yml.
  3. sudo docker-compose up --build


See ansible-playbook-example.yml.


Why create a Telegram bot instead of a web app?

I created this mini game for my family including my grandparents, who are comfortable using Telegram.