Раскладка файлов после распознавния

This commit is contained in:
2026-06-14 14:53:40 +03:00
parent 91c501624a
commit 9c1b178e46
19 changed files with 3001 additions and 38 deletions
+34 -1
View File
@@ -13,8 +13,11 @@ import (
"git.vakhrushev.me/av/jellybit/internal/config"
"git.vakhrushev.me/av/jellybit/internal/httpapi"
"git.vakhrushev.me/av/jellybit/internal/ingest"
"git.vakhrushev.me/av/jellybit/internal/layout"
"git.vakhrushev.me/av/jellybit/internal/llm"
"git.vakhrushev.me/av/jellybit/internal/logging"
"git.vakhrushev.me/av/jellybit/internal/qbt"
"git.vakhrushev.me/av/jellybit/internal/recognize"
"git.vakhrushev.me/av/jellybit/internal/store"
"git.vakhrushev.me/av/jellybit/internal/worker"
)
@@ -57,7 +60,36 @@ func runServe(args []string) error {
SavePath: cfg.QBittorrent.SavePath,
}, logger)
wrk := worker.New(st, qb, worker.Config{
// Ф2/Ф3: распознаватель и раскладчик. Если LLM не сконфигурирован,
// сервис работает как в Ф1 (completed-задачи дальше не двигаются).
var recognizer worker.Recognizer
if cfg.LLM.Type != "" && cfg.LLM.BaseURL != "" {
provider, perr := llm.New(llm.Config{
Type: cfg.LLM.Type,
BaseURL: cfg.LLM.BaseURL,
APIKey: cfg.LLM.APIKey,
Model: cfg.LLM.Model,
Proxy: cfg.LLM.Proxy,
Timeout: cfg.LLM.Timeout.Std(),
})
if perr != nil {
return fmt.Errorf("llm provider: %w", perr)
}
recognizer = recognize.New(provider, recognize.Config{MaxRetries: cfg.LLM.MaxRetries}, logger)
logger.Info("recognizer ready", "model", cfg.LLM.Model)
} else {
logger.Warn("llm not configured, recognition disabled")
}
layouter, err := layout.New(layout.Config{
MoviesDir: cfg.Paths.Movies,
SeriesDir: cfg.Paths.Series,
})
if err != nil {
return fmt.Errorf("layouter: %w", err)
}
wrk := worker.New(st, qb, recognizer, layouter, worker.Config{
Category: cfg.QBittorrent.Category,
SavePath: cfg.QBittorrent.SavePath,
PollInterval: cfg.Worker.PollInterval.Std(),
@@ -70,6 +102,7 @@ func runServe(args []string) error {
Ingestor: ingestor,
Commander: wrk,
Reader: st,
Reviewer: wrk,
})
if err != nil {
return err