139 lines
3.0 KiB
Markdown
139 lines
3.0 KiB
Markdown
# Zpravobot Digest Bot
|
||
|
||
Automatický denní digest z Mastodon postů pomocí Claude AI.
|
||
|
||
## Struktura
|
||
|
||
```
|
||
/app/data/zpravobot-digest/
|
||
├── export-daily.sh # Export postů z DB do CSV
|
||
├── digest-bot.py # Hlavní script (Claude + Mastodon)
|
||
├── run-digest.sh # Wrapper s config
|
||
├── config.env.example # Template konfigurace
|
||
└── README.md
|
||
```
|
||
|
||
## Instalace
|
||
|
||
### 1. Klonuj repo
|
||
|
||
```bash
|
||
cd /app/data
|
||
git clone https://gitea.tvoje-domena.cz/user/zpravobot-digest.git
|
||
cd zpravobot-digest
|
||
```
|
||
|
||
### 2. Konfigurace
|
||
|
||
```bash
|
||
cp config.env.example config.env
|
||
nano config.env
|
||
```
|
||
|
||
Vyplň:
|
||
|
||
- `ANTHROPIC_API_KEY` - Claude API token
|
||
- `TOKEN_ZPRAVOBOT` - Mastodon token pro @zpravobot
|
||
- `TOKEN_POZITIVNI` - Mastodon token pro @pozitivni
|
||
- `TOKEN_SARKASTICKY` - Mastodon token pro @sarkasticky
|
||
|
||
### 3. Práva
|
||
|
||
```bash
|
||
chmod +x export-daily.sh run-digest.sh digest-bot.py
|
||
chmod 600 config.env
|
||
```
|
||
|
||
### 4. Test
|
||
|
||
```bash
|
||
./export-daily.sh # Export CSV
|
||
./run-digest.sh zpravobot # Test digestu
|
||
```
|
||
|
||
## Použití
|
||
|
||
### Manuální spuštění
|
||
|
||
```bash
|
||
./run-digest.sh zpravobot # Neutrální digest
|
||
./run-digest.sh pozitivni # Pozitivní digest
|
||
./run-digest.sh sarkasticky # Sarkastický digest
|
||
```
|
||
|
||
### Automatizace (Cloudron Cron)
|
||
|
||
```
|
||
0 6 * * * /app/data/zpravobot-digest/export-daily.sh
|
||
0 7 * * * /app/data/zpravobot-digest/run-digest.sh zpravobot
|
||
0 12 * * * /app/data/zpravobot-digest/run-digest.sh pozitivni
|
||
0 18 * * * /app/data/zpravobot-digest/run-digest.sh sarkasticky
|
||
```
|
||
|
||
## Výstup
|
||
|
||
### Export CSV
|
||
|
||
- **Lokace:** `/app/data/posts-latest.csv`
|
||
- **Formát:** `id,created_at,text,uri,url,account_id`
|
||
- **Rozsah:** Posledních 48 hodin
|
||
- **Archiv:** `/app/data/archive/posts-YYYY-MM-DD.csv` (7 dní)
|
||
|
||
### Digest
|
||
|
||
- 2-toot thread (summary + odkazy)
|
||
- Publikováno na příslušný bot účet
|
||
- Styl podle bot personality
|
||
|
||
## Jak to funguje
|
||
|
||
1. **Export (6:00):** SQL → CSV export z PostgreSQL
|
||
2. **Digest (7:00/12:00/18:00):**
|
||
- Načte CSV
|
||
- Pošle data Claude API
|
||
- Claude analyzuje témata
|
||
- Publikuje 2-toot thread na Mastodon
|
||
|
||
## Struktura souborů
|
||
|
||
```
|
||
/app/data/
|
||
├── zpravobot-digest/ # Git repo
|
||
│ ├── export-daily.sh
|
||
│ ├── digest-bot.py
|
||
│ ├── run-digest.sh
|
||
│ ├── config.env # Gitignored!
|
||
│ └── README.md
|
||
├── posts-latest.csv # Denní export
|
||
├── archive/ # 7-denní historie
|
||
│ └── posts-YYYY-MM-DD.csv
|
||
└── logs/
|
||
└── export.log
|
||
```
|
||
|
||
## Požadavky
|
||
|
||
- Python 3.x (v Cloudron Mastodonu je)
|
||
- Mastodon instance (zpravobot.news)
|
||
- Claude API přístup
|
||
- 3× Mastodon bot účty s tokeny
|
||
|
||
## Bezpečnost
|
||
|
||
- ⚠️ `config.env` obsahuje citlivé tokeny → chmod 600
|
||
- ⚠️ Nepublikuj `config.env` do Gitu (je v .gitignore)
|
||
- ✅ DB přístup jen pro export script
|
||
- ✅ Digest script čte pouze CSV (bez DB přístupu)
|
||
|
||
## TODO
|
||
|
||
- [ ] Prompt optimalizace pro Clauda
|
||
- [ ] Error handling v digest-bot.py
|
||
- [ ] Notifikace při selhání
|
||
- [ ] Web dashboard pro statistiky
|
||
|
||
## Autor
|
||
|
||
Kolega + Claude
|
||
|