From bf13a4a1f8858d2d719b4a5d1c350d7f9fff4d76 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Mon, 6 Jul 2026 07:37:01 +0200 Subject: [PATCH] feat: add episode title enrichment to playback service --- internal/playback/watch_data.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/playback/watch_data.go b/internal/playback/watch_data.go index 2084f6f5..e2c83134 100644 --- a/internal/playback/watch_data.go +++ b/internal/playback/watch_data.go @@ -69,6 +69,22 @@ func (s *playbackService) BuildWatchData(ctx context.Context, animeID int, title return pageData, nil } +func (s *playbackService) EnrichEpisodeTitles(ctx context.Context, animeID int) ([]domain.CanonicalEpisode, error) { + anime, err := s.watchAnime(ctx, animeID) + if err != nil { + return nil, fmt.Errorf("failed to fetch anime for episode titles: %w", err) + } + enricher, ok := s.episodes.(domain.EpisodeTitleService) + if !ok { + return nil, errors.New("episode title enrichment is unavailable") + } + episodes, err := enricher.EnrichEpisodeTitles(ctx, anime) + if err != nil { + return nil, err + } + return episodes.Episodes, nil +} + func (s *playbackService) watchAnime(ctx context.Context, animeID int) (domain.Anime, error) { row, err := s.repo.GetAnime(ctx, int64(animeID)) if err == nil && row.ID > 0 && strings.TrimSpace(row.TitleOriginal) != "" {