Documentation
¶
Overview ¶
Package coveragehandlers provides HTTP handlers for the /api/coverage/* endpoints.
Index ¶
- type CoverageRadarrClient
- type CoverageSonarrClient
- type CoverageStore
- type Deps
- type Handler
- func (h *Handler) HandleCoverageDetail(w http.ResponseWriter, r *http.Request)
- func (h *Handler) HandleCoverageMovies(w http.ResponseWriter, r *http.Request)
- func (h *Handler) HandleCoverageSeries(w http.ResponseWriter, r *http.Request)
- func (h *Handler) HandleScanStates(w http.ResponseWriter, r *http.Request)
- type LiveState
- type MovieItem
- type SeriesItem
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CoverageRadarrClient ¶ added in v0.1.106
type CoverageRadarrClient interface {
GetMovies(ctx context.Context) ([]arrapi.Movie, error)
ResolveExcludeTagIDs(ctx context.Context, tags []string, logMissing bool) map[int]struct{}
}
CoverageRadarrClient is the Radarr surface coverage handlers use.
type CoverageSonarrClient ¶ added in v0.1.106
type CoverageSonarrClient interface {
GetSeries(ctx context.Context) ([]arrapi.Series, error)
ResolveExcludeTagIDs(ctx context.Context, tags []string, logMissing bool) map[int]struct{}
}
CoverageSonarrClient is the Sonarr surface coverage handlers use.
type CoverageStore ¶
type CoverageStore interface {
GetSubtitleFiles(ctx context.Context, mediaType api.MediaType, mediaIDPrefix string) ([]api.SubtitleEntry, error)
GetScanStates(ctx context.Context, mediaType api.MediaType, mediaIDPrefix string) ([]api.ScanStateRow, error)
}
CoverageStore documents the api.Store methods used by coverage handlers.
type Deps ¶
type Deps struct {
Store CoverageStore
StateFunc func() *LiveState
}
Deps holds the dependencies for coverage handlers.
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler provides HTTP handlers for the /api/coverage/* endpoints.
func NewHandler ¶
NewHandler creates a coverage Handler with the given dependencies.
func (*Handler) HandleCoverageDetail ¶
func (h *Handler) HandleCoverageDetail(w http.ResponseWriter, r *http.Request)
HandleCoverageDetail returns per-episode subtitle files for a series. GET /api/coverage/series/{tvdbId}
func (*Handler) HandleCoverageMovies ¶
func (h *Handler) HandleCoverageMovies(w http.ResponseWriter, r *http.Request)
HandleCoverageMovies returns subtitle coverage for all movies. GET /api/coverage/movies
func (*Handler) HandleCoverageSeries ¶
func (h *Handler) HandleCoverageSeries(w http.ResponseWriter, r *http.Request)
HandleCoverageSeries returns subtitle coverage for all TV series. GET /api/coverage/series
func (*Handler) HandleScanStates ¶
func (h *Handler) HandleScanStates(w http.ResponseWriter, r *http.Request)
HandleScanStates returns scan timestamps for all scanned media items. GET /api/coverage/scan-state?type=episode&prefix=tvdb-81189-
type LiveState ¶
type LiveState struct {
Cfg api.ConfigProvider
Sonarr CoverageSonarrClient // nil when sonarr not configured
Radarr CoverageRadarrClient // nil when radarr not configured
}
LiveState holds the runtime state needed by coverage handlers.
type MovieItem ¶ added in v0.1.29
type MovieItem struct {
Title string `json:"title"`
ImdbID string `json:"imdb_id,omitempty"`
Path string `json:"path,omitempty"`
SceneName string `json:"scene_name,omitempty"`
InCinemas string `json:"in_cinemas,omitempty"`
DigitalRelease string `json:"digital_release,omitempty"`
AudioLang string `json:"audio_lang"`
Rule string `json:"rule"`
Targets []coverage.TargetCoverage `json:"targets"`
Subs []api.SubtitleEntry `json:"subs"`
Tags []int `json:"tags,omitempty"`
TmdbID int `json:"tmdb_id"`
ID int `json:"id"`
Year int `json:"year"`
HasFile bool `json:"has_file"`
Excluded bool `json:"excluded,omitempty"`
}
MovieItem is the coverage summary for one movie.
type SeriesItem ¶ added in v0.1.29
type SeriesItem struct {
Title string `json:"title"`
ImdbID string `json:"imdb_id,omitempty"`
FirstAired string `json:"first_aired,omitempty"`
AudioLang string `json:"audio_lang"`
Rule string `json:"rule"`
Targets []coverage.TargetCoverage `json:"targets"`
Tags []int `json:"tags,omitempty"`
ID int `json:"id"`
Year int `json:"year"`
TvdbID int `json:"tvdb_id"`
Episodes int `json:"episodes"`
Excluded bool `json:"excluded,omitempty"`
}
SeriesItem is the coverage summary for one TV series.