search

package
v0.0.0-...-d25a9c8 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2023 License: GPL-3.0, GPL-3.0-only Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HTTPClient

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}
var Client HTTPClient

type IndividualResult

type IndividualResult struct {
	SearchResult
	Runtime                int
	PhysicalDigitalRelease time.Time
	EndedAt                time.Time
	Genres                 []string
	ImdbID                 string
	TvdbID                 *int
}

func GetResultByID

func GetResultByID(id string) (*IndividualResult, error)

func GetResultByImdbID

func GetResultByImdbID(imdbID string) (*IndividualResult, error)

type SearchAPI

type SearchAPI interface {
	SearchByTitle(string, string, int) (*SearchResults, error)
	SearchByID(string) (*IndividualResult, error)
	SearchByImdbID(string) (*IndividualResult, error)
}

type SearchResult

type SearchResult struct {
	Title       string
	Poster      string
	Plot        string
	Rating      float32
	ContentType string
	ReleasedAt  time.Time
	// The api agent used for the search
	Agent string
	// API agent's internal ID for the item
	ID string
}

type SearchResults

type SearchResults struct {
	Results      []SearchResult
	PerPage      int
	TotalResults int
}

func SearchByTitle

func SearchByTitle(title, contentType string, page int) (*SearchResults, error)

type TmdbAPI

type TmdbAPI struct{}

func (*TmdbAPI) SearchByID

func (t *TmdbAPI) SearchByID(id string) (*IndividualResult, error)

func (*TmdbAPI) SearchByImdbID

func (t *TmdbAPI) SearchByImdbID(imdbID string) (*IndividualResult, error)

func (*TmdbAPI) SearchByTitle

func (t *TmdbAPI) SearchByTitle(title, contentType string, page int) (*SearchResults, error)

type TmdbImdbResult

type TmdbImdbResult struct {
	MovieResults []struct {
		GenreIds         []int   `json:"genre_ids"`
		OriginalLanguage string  `json:"original_language"`
		OriginalTitle    string  `json:"original_title"`
		PosterPath       string  `json:"poster_path"`
		Video            bool    `json:"video"`
		ID               int     `json:"id"`
		VoteCount        int     `json:"vote_count"`
		Overview         string  `json:"overview"`
		ReleaseDate      string  `json:"release_date"`
		VoteAverage      float64 `json:"vote_average"`
		Title            string  `json:"title"`
		Adult            bool    `json:"adult"`
		BackdropPath     string  `json:"backdrop_path"`
		Popularity       float64 `json:"popularity"`
	} `json:"movie_results"`
	TvResults []struct {
		OriginalName     string   `json:"original_name"`
		GenreIds         []int    `json:"genre_ids"`
		OriginalLanguage string   `json:"original_language"`
		ID               int      `json:"id"`
		PosterPath       string   `json:"poster_path"`
		VoteAverage      float64  `json:"vote_average"`
		Overview         string   `json:"overview"`
		VoteCount        int      `json:"vote_count"`
		Name             string   `json:"name"`
		BackdropPath     string   `json:"backdrop_path"`
		OriginCountry    []string `json:"origin_country"`
		FirstAirDate     string   `json:"first_air_date"`
		Popularity       float64  `json:"popularity"`
	} `json:"tv_results"`
}

type TmdbIndividualSearch

type TmdbIndividualSearch struct {
	Adult               bool   `json:"adult,omitempty"`
	BackdropPath        string `json:"backdrop_path"`
	BelongsToCollection struct {
		ID           int    `json:"id"`
		Name         string `json:"name"`
		PosterPath   string `json:"poster_path"`
		BackdropPath string `json:"backdrop_path"`
	} `json:"belongs_to_collection,omitempty"`
	Budget int `json:"budget,omitempty"`
	Genres []struct {
		ID   int    `json:"id"`
		Name string `json:"name"`
	} `json:"genres"`
	Homepage            string  `json:"homepage"`
	ID                  int     `json:"id"`
	ImdbID              string  `json:"imdb_id,omitempty"`
	OriginalLanguage    string  `json:"original_language"`
	OriginalTitle       string  `json:"original_title,omitempty"`
	Overview            string  `json:"overview"`
	Popularity          float64 `json:"popularity"`
	PosterPath          string  `json:"poster_path"`
	ProductionCompanies []struct {
		ID            int    `json:"id"`
		LogoPath      string `json:"logo_path"`
		Name          string `json:"name"`
		OriginCountry string `json:"origin_country"`
	} `json:"production_companies"`
	ProductionCountries []struct {
		Iso31661 string `json:"iso_3166_1"`
		Name     string `json:"name"`
	} `json:"production_countries"`
	ReleaseDate     string `json:"release_date,omitempty"`
	Revenue         int    `json:"revenue,omitempty"`
	Runtime         int    `json:"runtime,omitempty"`
	SpokenLanguages []struct {
		EnglishName string `json:"english_name"`
		Iso6391     string `json:"iso_639_1"`
		Name        string `json:"name"`
	} `json:"spoken_languages"`
	Status           string        `json:"status"`
	Tagline          string        `json:"tagline"`
	Title            string        `json:"title,omitempty"`
	Video            bool          `json:"video,omitempty"`
	VoteAverage      float64       `json:"vote_average"`
	VoteCount        int           `json:"vote_count"`
	CreatedBy        []interface{} `json:"created_by,omitempty"`
	EpisodeRunTime   []int         `json:"episode_run_time,omitempty"`
	FirstAirDate     string        `json:"first_air_date,omitempty"`
	InProduction     bool          `json:"in_production,omitempty"`
	Languages        []string      `json:"languages,omitempty"`
	LastAirDate      string        `json:"last_air_date,omitempty"`
	LastEpisodeToAir struct {
		AirDate        string  `json:"air_date"`
		EpisodeNumber  int     `json:"episode_number"`
		ID             int     `json:"id"`
		Name           string  `json:"name"`
		Overview       string  `json:"overview"`
		ProductionCode string  `json:"production_code"`
		SeasonNumber   int     `json:"season_number"`
		StillPath      string  `json:"still_path"`
		VoteAverage    float64 `json:"vote_average"`
		VoteCount      int     `json:"vote_count"`
	} `json:"last_episode_to_air,omitempty"`
	Name             string      `json:"name,omitempty"`
	NextEpisodeToAir interface{} `json:"next_episode_to_air,omitempty"`
	Networks         []struct {
		Name          string `json:"name"`
		ID            int    `json:"id"`
		LogoPath      string `json:"logo_path"`
		OriginCountry string `json:"origin_country"`
	} `json:"networks,omitempty"`
	NumberOfEpisodes int      `json:"number_of_episodes,omitempty"`
	NumberOfSeasons  int      `json:"number_of_seasons,omitempty"`
	OriginCountry    []string `json:"origin_country,omitempty"`
	OriginalName     string   `json:"original_name,omitempty"`
	Seasons          []struct {
		AirDate      string `json:"air_date"`
		EpisodeCount int    `json:"episode_count"`
		ID           int    `json:"id"`
		Name         string `json:"name"`
		Overview     string `json:"overview"`
		PosterPath   string `json:"poster_path"`
		SeasonNumber int    `json:"season_number"`
	} `json:"seasons,omitempty"`
	Type         string `json:"type,omitempty"`
	ReleaseDates struct {
		Results []struct {
			Iso31661     string `json:"iso_3166_1"`
			ReleaseDates []struct {
				Certification string    `json:"certification"`
				Iso6391       string    `json:"iso_639_1"`
				Note          string    `json:"note"`
				ReleaseDate   time.Time `json:"release_date"`
				Type          int       `json:"type"`
			} `json:"release_dates"`
		} `json:"results"`
	} `json:"release_dates,omitempty"`
	ExternalIds struct {
		ImdbID      string      `json:"imdb_id"`
		FreebaseMid interface{} `json:"freebase_mid"`
		FreebaseID  interface{} `json:"freebase_id"`
		TvdbID      int         `json:"tvdb_id"`
		TvrageID    interface{} `json:"tvrage_id"`
		FacebookID  string      `json:"facebook_id"`
		InstagramID string      `json:"instagram_id"`
		TwitterID   string      `json:"twitter_id"`
	} `json:"external_ids"`
	Success       bool   `json:"success"`
	StatusCode    int    `json:"status_code,omitempty"`
	StatusMessage string `json:"status_message,omitempty"`
}

type TmdbTitleSearch

type TmdbTitleSearch struct {
	Page    int `json:"page"`
	Results []struct {
		Adult            bool     `json:"adult,omitempty"`
		BackdropPath     string   `json:"backdrop_path"`
		GenreIds         []int    `json:"genre_ids"`
		ID               int      `json:"id"`
		MediaType        string   `json:"media_type"`
		OriginalLanguage string   `json:"original_language"`
		OriginalTitle    string   `json:"original_title,omitempty"`
		Overview         string   `json:"overview"`
		Popularity       float64  `json:"popularity"`
		PosterPath       string   `json:"poster_path"`
		ReleaseDate      string   `json:"release_date,omitempty"`
		Title            string   `json:"title,omitempty"`
		Video            bool     `json:"video,omitempty"`
		VoteAverage      float64  `json:"vote_average"`
		VoteCount        int      `json:"vote_count"`
		FirstAirDate     string   `json:"first_air_date,omitempty"`
		Name             string   `json:"name,omitempty"`
		OriginCountry    []string `json:"origin_country,omitempty"`
		OriginalName     string   `json:"original_name,omitempty"`
	} `json:"results"`
	TotalPages   int `json:"total_pages"`
	TotalResults int `json:"total_results"`
}

Jump to

Keyboard shortcuts

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