feat: add episode title provider and service interfaces

This commit is contained in:
2026-07-06 07:36:36 +02:00
parent a4bc38990d
commit dbda4b96a4

View File

@@ -8,12 +8,21 @@ type EpisodeAvailability struct {
Titles map[int]string Titles map[int]string
} }
type EpisodeAvailabilityProvider interface { type EpisodeProvider interface {
Name() string Name() string
ResolveEpisodeProviderID(ctx context.Context, animeID int, titleCandidates []string) (string, error) ResolveEpisodeProviderID(ctx context.Context, animeID int, titleCandidates []string) (string, error)
}
type EpisodeAvailabilityProvider interface {
EpisodeProvider
GetEpisodeAvailabilityByProviderID(ctx context.Context, providerID string) (EpisodeAvailability, error) GetEpisodeAvailabilityByProviderID(ctx context.Context, providerID string) (EpisodeAvailability, error)
} }
type EpisodeTitleProvider interface {
EpisodeProvider
GetEpisodeTitlesByProviderID(ctx context.Context, providerID string) (map[int]string, error)
}
type CanonicalEpisode struct { type CanonicalEpisode struct {
Number int `json:"number"` Number int `json:"number"`
Title string `json:"title"` Title string `json:"title"`
@@ -41,3 +50,7 @@ type EpisodeService interface {
GetCanonicalEpisodes(ctx context.Context, anime Anime, forceRefresh bool) (CanonicalEpisodeList, error) GetCanonicalEpisodes(ctx context.Context, anime Anime, forceRefresh bool) (CanonicalEpisodeList, error)
RefreshTrackedDue(ctx context.Context, limit int) error RefreshTrackedDue(ctx context.Context, limit int) error
} }
type EpisodeTitleService interface {
EnrichEpisodeTitles(ctx context.Context, anime Anime) (CanonicalEpisodeList, error)
}