feat: add episode title enrichment to playback service
This commit is contained in:
@@ -69,6 +69,22 @@ func (s *playbackService) BuildWatchData(ctx context.Context, animeID int, title
|
|||||||
return pageData, nil
|
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) {
|
func (s *playbackService) watchAnime(ctx context.Context, animeID int) (domain.Anime, error) {
|
||||||
row, err := s.repo.GetAnime(ctx, int64(animeID))
|
row, err := s.repo.GetAnime(ctx, int64(animeID))
|
||||||
if err == nil && row.ID > 0 && strings.TrimSpace(row.TitleOriginal) != "" {
|
if err == nil && row.ID > 0 && strings.TrimSpace(row.TitleOriginal) != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user