Files
zpravobot-digest/README.md

259 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:
- <https://zpravobot.news/@zpravobot>
- <https://zpravobot.news/@pozitivni>
- <https://zpravobot.news/@sarkasticky>
## 🐛 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