37 lines
1.5 KiB
Go
37 lines
1.5 KiB
Go
package actions
|
|
|
|
import (
|
|
"time"
|
|
|
|
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/ai"
|
|
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/readability"
|
|
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/status"
|
|
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/variants"
|
|
aiClientPkg "git.pengzhan.dev/haopengzhan/rsspipe/internal/ai"
|
|
"git.pengzhan.dev/haopengzhan/rsspipe/internal/db"
|
|
"git.pengzhan.dev/haopengzhan/rsspipe/internal/worker"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// RegisterDefaultHandlers registers all core action handlers with the worker pool.
|
|
func RegisterDefaultHandlers(pool *worker.Pool, database *db.DB, log *zap.Logger) {
|
|
// 1. Readability Full-Text Scraper
|
|
scraper := readability.NewScraper(15 * time.Second)
|
|
pool.RegisterHandler("readability_scrape", scraper.Handler())
|
|
|
|
// 2. Status Handlers (mark_read, mark_starred)
|
|
pool.RegisterHandler("mark_read", status.NewMarkReadHandler())
|
|
pool.RegisterHandler("mark_starred", status.NewMarkStarredHandler())
|
|
|
|
// 3. Variant Handlers (set_variant with tag merging)
|
|
pool.RegisterHandler("set_variant", variants.NewSetVariantHandler(database))
|
|
|
|
// 4. AI Subsystem Handlers
|
|
aiClient := aiClientPkg.NewClient(45 * time.Second)
|
|
enrichHandler := ai.NewEnrichmentHandler(database, aiClient, log)
|
|
pool.RegisterHandler("ai_enrich", enrichHandler)
|
|
pool.RegisterHandler("ai_summary", enrichHandler) // Backward compatibility alias
|
|
|
|
pool.RegisterHandler("ai_agent_action", ai.NewTriageHandler(database, aiClient, pool, log))
|
|
}
|