Добавил логи

This commit is contained in:
2026-06-14 19:37:09 +03:00
parent d4bf8a8cad
commit 81ed58ecff
28 changed files with 379 additions and 121 deletions
+9 -9
View File
@@ -41,7 +41,7 @@ func runRecognize(args []string) error {
return fmt.Errorf("usage: jellybit recognize <infohash> [--dry-run] [--context ...]")
}
if !*dryRun {
return fmt.Errorf("recognize работает только в режиме --dry-run; раскладка — через ревью")
return fmt.Errorf("recognize runs only in --dry-run mode; layout is applied via review")
}
cfg, err := config.Load(*configPath)
@@ -49,7 +49,7 @@ func runRecognize(args []string) error {
return err
}
if cfg.LLM.Type == "" || cfg.LLM.BaseURL == "" {
return fmt.Errorf("в конфиге не настроен [llm] — распознавание невозможно")
return fmt.Errorf("[llm] is not configured in config — recognition is unavailable")
}
// Внутренние логи (ретраи/ошибки провайдеров) — в stderr, чтобы не мешать
// плану в stdout.
@@ -63,7 +63,7 @@ func runRecognize(args []string) error {
URL: cfg.QBittorrent.URL,
Username: cfg.QBittorrent.Username,
Password: cfg.QBittorrent.Password,
})
}, logger)
if err != nil {
return err
}
@@ -73,7 +73,7 @@ func runRecognize(args []string) error {
}
t, ok := findTorrent(torrents, infohash)
if !ok {
return fmt.Errorf("торрент с infohash %s не найден в qBittorrent", infohash)
return fmt.Errorf("torrent with infohash %s not found in qBittorrent", infohash)
}
files, err := qb.Files(ctx, t.Hash)
if err != nil {
@@ -81,14 +81,14 @@ func runRecognize(args []string) error {
}
// Провайдеры метаданных + LLM + распознаватель.
providers, err := metadataProviders(cfg)
providers, err := metadataProviders(cfg, logger)
if err != nil {
return err
}
provider, err := 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(),
})
}, logger)
if err != nil {
return err
}
@@ -105,11 +105,11 @@ func runRecognize(args []string) error {
start := time.Now()
res, err := rec.Recognize(ctx, in)
if err != nil {
return fmt.Errorf("распознавание: %w", err)
return fmt.Errorf("recognize: %w", err)
}
// Раскладчик для превью (BuildLinks ничего не пишет).
lay, err := layout.New(layout.Config{MoviesDir: cfg.Paths.Movies, SeriesDir: cfg.Paths.Series})
// Раскладчик для превью (BuildLinks ничего не пишет; логгер не нужен).
lay, err := layout.New(layout.Config{MoviesDir: cfg.Paths.Movies, SeriesDir: cfg.Paths.Series}, nil)
if err != nil {
return err
}
+9 -8
View File
@@ -5,6 +5,7 @@ import (
"errors"
"flag"
"fmt"
"log/slog"
"net/http"
"net/url"
"os/signal"
@@ -55,7 +56,7 @@ func runServe(args []string) error {
URL: cfg.QBittorrent.URL,
Username: cfg.QBittorrent.Username,
Password: cfg.QBittorrent.Password,
})
}, logger)
if err != nil {
return err
}
@@ -66,7 +67,7 @@ func runServe(args []string) error {
}, logger)
// Ф4: базы метаданных (опц.). Без них авто-раскладки нет — всё в review.
providers, err := metadataProviders(cfg)
providers, err := metadataProviders(cfg, logger)
if err != nil {
return err
}
@@ -85,7 +86,7 @@ func runServe(args []string) error {
Model: cfg.LLM.Model,
Proxy: cfg.LLM.Proxy,
Timeout: cfg.LLM.Timeout.Std(),
})
}, logger)
if perr != nil {
return fmt.Errorf("llm provider: %w", perr)
}
@@ -101,7 +102,7 @@ func runServe(args []string) error {
layouter, err := layout.New(layout.Config{
MoviesDir: cfg.Paths.Movies,
SeriesDir: cfg.Paths.Series,
})
}, logger)
if err != nil {
return fmt.Errorf("layouter: %w", err)
}
@@ -208,14 +209,14 @@ func telegramHTTPClient(proxy string) (*http.Client, error) {
// metadataProviders собирает включённые конфигом базы метаданных. Для
// сериалов Jellyfin привычнее tvdbid, поэтому TVDB идёт первым.
func metadataProviders(cfg *config.Config) ([]metadata.Provider, error) {
func metadataProviders(cfg *config.Config, logger *slog.Logger) ([]metadata.Provider, error) {
var out []metadata.Provider
// TVMaze без ключа и покрывает сериалы — ставим первым.
if cfg.Metadata.TVMaze.Enabled {
p, err := metadata.NewTVMaze(metadata.TVMazeConfig{
Proxy: cfg.Metadata.TVMaze.Proxy,
Timeout: cfg.Metadata.TVMaze.Timeout.Std(),
})
}, logger)
if err != nil {
return nil, fmt.Errorf("tvmaze provider: %w", err)
}
@@ -228,7 +229,7 @@ func metadataProviders(cfg *config.Config) ([]metadata.Provider, error) {
APIKey: cfg.Metadata.TVDB.APIKey,
Proxy: cfg.Metadata.TVDB.Proxy,
Timeout: cfg.Metadata.TVDB.Timeout.Std(),
})
}, logger)
if err != nil {
return nil, fmt.Errorf("tvdb provider: %w", err)
}
@@ -239,7 +240,7 @@ func metadataProviders(cfg *config.Config) ([]metadata.Provider, error) {
APIKey: cfg.Metadata.TMDB.APIKey,
Proxy: cfg.Metadata.TMDB.Proxy,
Timeout: cfg.Metadata.TMDB.Timeout.Std(),
})
}, logger)
if err != nil {
return nil, fmt.Errorf("tmdb provider: %w", err)
}