coveragehandlers

package
v0.1.147 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2026 License: GPL-2.0, GPL-3.0 Imports: 11 Imported by: 0

Documentation

Overview

Package coveragehandlers provides HTTP handlers for the /api/coverage/* endpoints.

Index

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

func NewHandler(deps Deps) *Handler

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL