# Zprávobot AI Digest Automatický denní digest systém pro Mastodon boty používající Claude AI. ## 📖 O projektu Automatizační nástavba pro [Zprávobot.news](https://github.com/DanielSnor/Zpravobot.news) od Daniela Snora. Přidává AI-powered digest systém s Claude analýzou a automatickou kategorizací zpráv. ## 🎯 Co to dělá Systém 3× denně: 1. Načte včerejší posty z CSV exportu 2. Automaticky je kategorizuje podle témat (🌍 Politika, 🏒 Sport, 🎬 Kultura...) 3. Analyzuje pomocí Claude AI 4. Publikuje 2-toot thread na Mastodon ### Tři boty s různými styly | Bot | Čas | Styl | Účel | |-----|-----|------|------| | @zpravobot | 7:30 | Neutrální | Ranní přehled zpráv | | @pozitivni | 12:00 | Pozitivní | Polední motivace | | @sarkasticky | 19:00 | Sarkastický | Večerní komentář | ## 📋 Požadavky - Ruby 3.0+ - mastodon-api gem - PostgreSQL s Mastodon daty - Claude API klíč - 3 Mastodon bot tokeny ## 🚀 Instalace (Cloudron) ### 1. Připrav prostředí V Mastodon terminalu (Cloudron): ```bash cd /app/data git clone https://gitea.vhsky.cz/user/zpravobot-digest.git cd zpravobot-digest ``` ### 2. Nainstaluj Ruby gem ```bash export GEM_HOME=$HOME/.gem export PATH=$GEM_HOME/bin:$PATH gem install mastodon-api --user-install ``` Ověř instalaci: ```bash ruby -e "require 'mastodon'; puts 'OK'" ``` ### 3. Konfigurace ```bash cp config.env.example config.env nano config.env ``` Vyplň tokeny: ```bash export ANTHROPIC_API_KEY="sk-ant-api03-..." export ZPRAVOBOT_TOKEN="token-zde" export POZITIVNI_TOKEN="token-zde" export SARKASTICKY_TOKEN="token-zde" ``` **Jak vytvořit Mastodon tokeny:** 1. Přihlásit se jako bot účet 2. Settings → Development → New application 3. Scopes: `read:statuses` + `write:statuses` 4. Zkopírovat "Your access token" ### 4. Spustitelné práva ```bash chmod +x export-daily.sh publish_digest.rb run-digest.sh chmod 600 config.env ``` ## 🧪 Testování ### Dry-run (bez publikace) ```bash source config.env ./run-digest.sh zpravobot --dry-run ./run-digest.sh pozitivni --dry-run ./run-digest.sh sarkasticky --dry-run ``` ### Live test (skutečná publikace) ```bash ./run-digest.sh zpravobot ``` Zkontroluj na Mastodonu že se thread publikoval. ## ⏰ Automatizace (Cron) V Cloudron UI → Mastodon app → Cron tab: ``` 0 6 * * * /app/data/zpravobot-digest/export-daily.sh 30 7 * * * /app/data/zpravobot-digest/run-digest.sh zpravobot 0 12 * * * /app/data/zpravobot-digest/run-digest.sh pozitivni 0 19 * * * /app/data/zpravobot-digest/run-digest.sh sarkasticky ``` **Rozvrh:** - 6:00 - Export postů z databáze - 7:30 - Neutrální digest (@zpravobot) - 12:00 - Pozitivní zprávy (@pozitivni) - 19:00 - Sarkastický komentář (@sarkasticky) ## 📁 Struktura souborů ``` /app/data/ ├── zpravobot-digest/ │ ├── export-daily.sh # CSV export z PostgreSQL │ ├── publish_digest.rb # Hlavní Ruby script │ ├── run-digest.sh # Wrapper (načte config) │ ├── config.env # Tokeny (gitignored!) │ └── config.env.example # Template ├── posts-latest.csv # Denní export (2 dny postů) ├── archive/ │ └── posts-YYYY-MM-DD.csv # 7 denní historie └── logs/ └── export.log # Logy exportu ``` ## 🔧 Ruční použití ### Publikovat digest ```bash source config.env ./run-digest.sh zpravobot # Neutrální ./run-digest.sh pozitivni # Pozitivní ./run-digest.sh sarkasticky # Sarkastický ``` ### Použít specifické datum ```bash ./run-digest.sh zpravobot --date=2026-01-05 --dry-run ``` ### Export CSV ```bash ./export-daily.sh ``` ## 🎨 Vlastnosti - ✅ **Automatická kategorizace témat** (Politik, Sport, Kultura...) - ✅ **Claude AI analýza** s fallbackem při selhání API - ✅ **Style filtering** - pozitivní bot filtruje negativní zprávy - ✅ **2-toot threads** - summary + odkazy - ✅ **URL extraction** z postů - ✅ **Error handling** a logging - ✅ **Dry-run mode** pro testování ## 📊 Monitoring ### Zkontrolovat dnešní běhy ```bash # V logu exportu tail -50 /app/data/logs/export.log # Ověřit CSV ls -lh /app/data/posts-latest.csv wc -l /app/data/posts-latest.csv ``` ### Zkontrolovat publikace Navštiv: - - - ## 🐛 Troubleshooting ### "CSV file not found" ```bash # Ověř že export běžel ls -la /app/data/posts-latest.csv # Spusť manuálně ./export-daily.sh ``` ### "Missing token" ```bash # Ověř environment source config.env echo $ZPRAVOBOT_TOKEN ``` ### "The access token is invalid" Token vypršel nebo je neplatný. Vygeneruj nový v Mastodon → Settings → Development. ### Ruby gem chyba ```bash # Reinstaluj gem export GEM_HOME=$HOME/.gem export PATH=$GEM_HOME/bin:$PATH gem install mastodon-api --user-install ``` ## 💰 Náklady - **Claude API**: ~$3/měsíc (3 requesty/den) - **Infrastruktura**: $0 (běží na Mastodon serveru) ## 🔒 Bezpečnost - ✅ Žádný přímý DB přístup (používá CSV export) - ✅ Tokeny v `config.env` (gitignored) - ✅ Read-only přístup k datům - ✅ Minimální oprávnění ## 📝 Licence Open source - vytvořeno pro Zprávobot.news komunitu. ## 🙏 Credits - **Daniel Snor** - [Zprávobot.news](https://github.com/DanielSnor/Zpravobot.news) - Původní Mastodon instance a koncept - **Zprávobot.news komunita** - České/Slovenské Mastodon zpravodajství - **Anthropic Claude** - AI analýza a kategorizace - **Mastodon** - Decentralizovaná sociální síť --- **Verze:** 1.0.0 **Aktualizováno:** Leden 2026