Metadata-Version: 2.1
Name: location-guessing-game-telegram-bot
Version: 0.1.1
Summary: Basic Telegram Bot Sending Random Wikimedia Commons Photos
Home-page: https://github.com/fphammerle/location-guessing-game-telegram-bot
Author: Fabian Peter Hammerle
Author-email: fabian+location-guessing@hammerle.me
License: GPLv3+
Project-URL: Changelog, https://github.com/fphammerle/location-guessing-game-telegram-bot/blob/master/CHANGELOG.md
Keywords: bot,game,guessing,location,photos,telegram
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Games/Entertainment
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Description-Content-Type: text/markdown
Requires-Dist: python-telegram-bot

# Location Guessing Game Telegram Bot 🏞️ 🌍 📌

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![CI Pipeline Status](https://github.com/fphammerle/location-guessing-game-telegram-bot/workflows/tests/badge.svg)](https://github.com/fphammerle/location-guessing-game-telegram-bot/actions)
[![Coverage Status](https://coveralls.io/repos/github/fphammerle/location-guessing-game-telegram-bot/badge.svg?branch=master)](https://coveralls.io/github/fphammerle/location-guessing-game-telegram-bot?branch=master)
[![Last Release](https://img.shields.io/pypi/v/location-guessing-game-telegram-bot.svg)](https://pypi.org/project/location-guessing-game-telegram-bot/#history)
[![Compatible Python Versions](https://img.shields.io/pypi/pyversions/location-guessing-game-telegram-bot.svg)](https://pypi.org/project/location-guessing-game-telegram-bot/)

Basic [Telegram Bot](https://telegram.org/) Sending Random [Wikimedia Commons](https://commons.wikimedia.org) Photos

## Setup

1. Download a dataset of photos via the [WikiMap API](https://de.wikipedia.org/wiki/Benutzer:DB111/Tools#WikiMap), for instance:
   ```sh
   wget --restrict-file-names=windows 'https://wikimap.toolforge.org/api.php?cat=Images_with_annotations&lang=de&year=2010-2015&region=49|9|46|18'
   ```
2. Generate a bot API token by sending `/newbot` to [BotFather](https://telegram.me/botfather)
3. Install bot via `pip3 install --user --upgrade location-guessing-game-telegram-bot`
   (or use [docker](https://docker.io) / [podman](https://podman.io), see below)

## Usage

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](https://telegram.me/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 https://hub.docker.com/r/fphammerle/location-guessing-game-telegram-bot/tags

```sh
$ 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 \
    docker.io/fphammerle/location-guessing-game-telegram-bot:latest
```

Optionally, replace `sudo docker` with `podman`.

Annotation of signed git tags `docker/*` contains docker image digests: https://github.com/fphammerle/location-guessing-game-telegram-bot/tags

Detached signatures of images are available at https://github.com/fphammerle/container-image-sigstore
(exluding automatically built `latest` tag).

### Docker Compose 🐙

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

## Trivia

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.


