provider

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package provider provides interfaces and types for metadata providers that fetch information about movies and TV shows.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNoResults is returned when no results are found.
	ErrNoResult = fmt.Errorf("no result found")
)

Functions

func NewResponseBaseMovie

func NewResponseBaseMovie() *responseBaseMovie

func NewResponseBaseTV

func NewResponseBaseTV() *responseBaseTV

func NewResponseBaseTVEpisode

func NewResponseBaseTVEpisode() *responseBaseTVEpisode

func NewResponseBaseTVSeason

func NewResponseBaseTVSeason() *responseBaseTVSeason

Types

type Interface

type Interface interface {
	Name() string
	SearchMovie(Request) (ResponseMovie, float64, error)
	SearchTV(Request) (ResponseTV, float64, error)
}

Interface is the interface that all providers must implement.

type MediaType

type MediaType int

MediaType represents the type of media (movie, tv, person, etc).

const (
	MediaTypeUnknown MediaType = iota
	MediaTypeMovie
	MediaTypeTV
	MediaTypeTVSeason
	MediaTypeTVEpisode
	MediaTypeCollection
)

func (MediaType) String

func (m MediaType) String() string

type NewFunc

type NewFunc func(*pflag.FlagSet) (Interface, error)

NewFunc is a function that creates a new provider instance.

type Provider

type Provider struct {
	Name  string
	New   NewFunc
	Flags *pflag.FlagSet
}

Provider represents a data provider with its name, constructor function, and flags.

type ProviderFunc

type ProviderFunc func() Provider

ProviderFunc is a function that returns a Provider.

type Request

type Request struct {
	Query               string
	Year                int
	QueryLanguage       string
	DestinationLanguage string
	Info                parser.Info
	Entry               fs.DirEntry

	Response Response
}

Request represents a search request to a provider.

func (Request) String

func (r Request) String() string

type Response

type Response interface {
	// Commont methods for all media types.
	GetID() int
	GetName() string
	GetDate() time.Time
	GetPopularity() int
	InLanguage(Request) (Response, error)

	ResponseBase
}

Response represents a search response from a provider.

type ResponseBase

type ResponseBase interface {
	GetRequest() *Request
	SetRequest(Request)
}

type ResponseBaseMovie

type ResponseBaseMovie interface {
	ResponseBase
	// contains filtered or unexported methods
}

type ResponseBaseTV

type ResponseBaseTV interface {
	ResponseBase
	// contains filtered or unexported methods
}

type ResponseBaseTVEpisode

type ResponseBaseTVEpisode interface {
	ResponseBase
	// contains filtered or unexported methods
}

type ResponseBaseTVSeason

type ResponseBaseTVSeason interface {
	ResponseBase
	// contains filtered or unexported methods
}

type ResponseMovie

type ResponseMovie interface {
	Response

	ResponseBaseMovie
}

type ResponseTV

type ResponseTV interface {
	Response

	GetSeason(int) (ResponseTVSeason, error)
	GetSeasons() []ResponseTVSeason

	ResponseBaseTV
}

type ResponseTVEpisode

type ResponseTVEpisode interface {
	Response

	GetEpisodeNumber() int
	GetSeason() ResponseTVSeason

	ResponseBaseTVEpisode
}

type ResponseTVSeason

type ResponseTVSeason interface {
	Response

	GetShow() ResponseTV
	GetSeasonNumber() int
	GetEpisode(int) (ResponseTVEpisode, error)
	GetEpisodes() []ResponseTVEpisode

	ResponseBaseTVSeason
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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