Bot che recupera la schedule da un XML generato da Pretalx (es.
https://pretalx.endsummer.camp/2k26/schedule/export/schedule.xml) e manda su
Telegram, circa 15 minuti prima, il promemoria di ogni evento in arrivo.
Il bot gira come un unico processo con un ciclo interno: ad ogni iterazione
riscarica l'XML (per intercettare eventuali modifiche alla schedule durante
l'evento), cerca gli eventi che iniziano tra 0 e REMINDER_MINUTES minuti e,
per ognuno non ancora notificato, invia un messaggio Telegram. Il guid degli
eventi già notificati viene salvato su file (STATE_FILE) per evitare invii
duplicati tra un'iterazione e l'altra o dopo un riavvio del container.
| Variabile | Obbligatoria | Default | Descrizione |
|---|---|---|---|
TELEGRAM_BOT_TOKEN |
sì | - | Token del bot Telegram (da @BotFather) |
TELEGRAM_CHAT_ID |
sì | - | Chat/canale su cui inviare i promemoria |
PRETALX_XML_URL |
no | https://pretalx.endsummer.camp/2k26/schedule/export/schedule.xml |
URL (o file://...) dell'export XML di Pretalx |
REMINDER_MINUTES |
no | 15 |
Quanti minuti prima dell'inizio inviare il promemoria |
POLL_INTERVAL_SECONDS |
no | 900 (15 minuti) |
Ogni quanto ri-scaricare l'XML e ricontrollare gli eventi |
STATE_FILE |
no | /data/sent_events.json |
File dove tenere traccia degli eventi già notificati |
ABSTRACT_MAX_LENGTH |
no | 800 |
Troncamento dell'abstract nel messaggio Telegram |
LOG_LEVEL |
no | INFO |
Livello di logging |
export TELEGRAM_BOT_TOKEN=...
export TELEGRAM_CHAT_ID=...
# opzionale, per testare con lo schedule.xml incluso nel repo invece che scaricarlo:
export PRETALX_XML_URL="file://$(pwd)/schedule.xml"
python3 main.pycp .env.example .env # e compila token/chat id
docker compose up --build -dLo stato degli eventi notificati viene persistito in ./data (montato su
/data nel container) grazie al volume dichiarato in docker-compose.yml.