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 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):

cd /app/data
git clone https://gitea.vhsky.cz/user/zpravobot-digest.git
cd zpravobot-digest

2. Nainstaluj Ruby gem

export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH
gem install mastodon-api --user-install

Ověř instalaci:

ruby -e "require 'mastodon'; puts 'OK'"

3. Konfigurace

cp config.env.example config.env
nano config.env

Vyplň tokeny:

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

chmod +x export-daily.sh publish_digest.rb run-digest.sh
chmod 600 config.env

🧪 Testování

Dry-run (bez publikace)

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)

./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

source config.env
./run-digest.sh zpravobot           # Neutrální
./run-digest.sh pozitivni           # Pozitivní
./run-digest.sh sarkasticky         # Sarkastický

Použít specifické datum

./run-digest.sh zpravobot --date=2026-01-05 --dry-run

Export CSV

./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

# 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"

# Ověř že export běžel
ls -la /app/data/posts-latest.csv

# Spusť manuálně
./export-daily.sh

"Missing token"

# 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

# 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 - 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

Description
Automatický denní digest z Mastodon postů pomocí Claude AI.
Readme 57 KiB
Languages
Ruby 92.8%
Shell 7.2%