tmdb - tvseasons.go
1 package tmdb
2
3 import (
4 "fmt"
5 "net/url"
6 )
7
8 // TVEpisode contains basic information about an episode of a TV show
9 type TVEpisode struct {
10 Episode
11 Crew []CrewCredit
12 GuestStars []CastCredit
13 }
14
15 // TVSeason contains the details for a season of a TV show
16 type TVSeason struct {
17 StrID string `json:"_id"`
18 AirDate string `json:"air_date"`
19 Episodes []TVEpisode `json:"episodes"`
20 Name string `json:"name"`
21 Overview string `json:"overview"`
22 ID int64 `json:"id"`
23 PosterPath *string `json:"poster_path"`
24 SeasonNumber int64 `json:"season_number"`
25 }
26
27 // TVSeason retrieves the details for a season of a TV show
28 func (t *TMDB) TVSeason(id int64, season int64, params ...option) (*TVSeason, error) {
29 tv := new(TVSeason)
30 if err := t.get(tv, fmt.Sprintf("/3/tv/%d/season/%d", id, season), url.Values{}, params...); err != nil {
31 return nil, err
32 }
33 return tv, nil
34 }
35
36 // TVSeasonAggregateCredits retrieves the aggregate credits for a season of a TV show
37 func (t *TMDB) TVSeasonAggregateCredits(id int64, season int64, params ...option) (*TVAggregateCredits, error) {
38 tv := new(TVAggregateCredits)
39 if err := t.get(tv, fmt.Sprintf("/3/tv/%d/season/%d/aggregate_credits", id, season), url.Values{}, params...); err != nil {
40 return nil, err
41 }
42 return tv, nil
43 }
44
45 // TVSeasonChanges retrieves changes for a season of a TV show
46 func (t *TMDB) TVSeasonChanges(id int64, season int64, params ...option) (*EntryChanges, error) {
47 e := new(EntryChanges)
48 if err := t.get(e, fmt.Sprintf("/3/tv/%d/season/%d/changes", id, season), url.Values{}, params...); err != nil {
49 return nil, err
50 }
51 return e, nil
52 }
53
54 // TVSeasonCredits retrieves credits for a season of a TV show
55 func (t *TMDB) TVSeasonCredits(id int64, season int64, params ...option) (*Credits, error) {
56 c := new(Credits)
57 if err := t.get(c, fmt.Sprintf("/3/tv/%d/season/%d/credits", id, season), url.Values{}, params...); err != nil {
58 return nil, err
59 }
60 return c, nil
61 }
62
63 // TVSeasonExternalIDs retrieves all of the external ids for a season of a TV show
64 func (t *TMDB) TVSeasonExternalIDs(id int64, season int64, params ...option) (*ExternalIDs, error) {
65 e := new(ExternalIDs)
66 if err := t.get(e, fmt.Sprintf("/3/tv/%d/season/%d/external_ids", id, season), url.Values{}, params...); err != nil {
67 return nil, err
68 }
69 return e, nil
70 }
71
72 // TVSeasonImages retrieves all of the images for a season of a TV show
73 func (t *TMDB) TVSeasonImages(id int64, season int64, params ...option) (*Images, error) {
74 i := new(Images)
75 if err := t.get(i, fmt.Sprintf("/3/tv/%d/season/%d/images", id, season), url.Values{}, params...); err != nil {
76 return nil, err
77 }
78 return i, nil
79 }
80
81 // TVSeasonTranslations retrieves all of the translations for a season of a TV show
82 func (t *TMDB) TVSeasonTranslations(id int64, season int64, params ...option) (*Translations, error) {
83 tr := new(Translations)
84 if err := t.get(tr, fmt.Sprintf("/3/tv/%d/season/%d/translations", id, season), url.Values{}, params...); err != nil {
85 return nil, err
86 }
87 return tr, nil
88 }
89
90 // TVSeasonVideos retrieves all of the videos for a season of a TV show
91 func (t *TMDB) TVSeasonVideos(id int64, season int64, params ...option) (*Videos, error) {
92 v := new(Videos)
93 if err := t.get(v, fmt.Sprintf("/3/tv/%d/season/%d/videos", id, season), url.Values{}, params...); err != nil {
94 return nil, err
95 }
96 return v, nil
97 }