tmdb - tvepisodes.go
1 package tmdb
2
3 import (
4 "fmt"
5 "net/url"
6 )
7
8 // TVEpisode retrieves the details for an episode of a TV show
9 func (t *TMDB) TVEpisode(id int64, season int64, episode int64, params ...option) (*TVEpisode, error) {
10 tv := new(TVEpisode)
11 if err := t.get(tv, fmt.Sprintf("/3/tv/%d/season/%d/episode/%d", id, season, episode), url.Values{}, params...); err != nil {
12 return nil, err
13 }
14 return tv, nil
15 }
16
17 // TVEpisodeChanges retrieves changes for an episode of a TV show
18 func (t *TMDB) TVEpisodeChanges(id int64, season int64, episode int64, params ...option) (*EntryChanges, error) {
19 e := new(EntryChanges)
20 if err := t.get(e, fmt.Sprintf("/3/tv/%d/season/%d/episode/%d/changes", id, season, episode), url.Values{}, params...); err != nil {
21 return nil, err
22 }
23 return e, nil
24 }
25
26 // TVEpisodeCredits contains the credit information for an episode of a TV show
27 type TVEpisodeCredits struct {
28 ID int64
29 Cast []CastCredit `json:"cast"`
30 Crew []CrewCredit `json:"crew"`
31 GuestStars []CastCredit `json:"guest_stars"`
32 }
33
34 // TVEpisodeCredits retrieves the credit information for an episode of a TV show
35 func (t *TMDB) TVEpisodeCredits(id int64, season int64, episode int64, params ...option) (*TVEpisodeCredits, error) {
36 tv := new(TVEpisodeCredits)
37 if err := t.get(tv, fmt.Sprintf("/3/tv/%d/season/%d/episode/%d/credits", id, season, episode), url.Values{}, params...); err != nil {
38 return nil, err
39 }
40 return tv, nil
41 }
42
43 // TVEpisodeExternalIDs contains all of the known external IDs for an episode of a TV show
44 type TVEpisodeExternalIDs struct {
45 IMDB *string `json:"imdb_id"`
46 FreebaseMID *string `json:"freebase_mid"`
47 FreebaseID *string `json:"freebase_id"`
48 TVDB *int64 `json:"tvdb_id"`
49 TVRage *int64 `json:"tbrage_id"`
50 ID int64 `json:"id"`
51 }
52
53 // TVEpisodeExternalIDs retrieves all of the known external IDs for an episode of a TV show
54 func (t *TMDB) TVEpisodeExternalIDs(id int64, season int64, episode int64, params ...option) (*TVEpisodeExternalIDs, error) {
55 tv := new(TVEpisodeExternalIDs)
56 if err := t.get(tv, fmt.Sprintf("/3/tv/%d/season/%d/episode/%d/external_ids", id, season, episode), url.Values{}, params...); err != nil {
57 return nil, err
58 }
59 return tv, nil
60 }
61
62 // TVEpisodeImages retrieves all of the images for an episode of a TV show
63 func (t *TMDB) TVEpisodeImages(id int64, season int64, episode int64, params ...option) (*Images, error) {
64 i := new(Images)
65 if err := t.get(i, fmt.Sprintf("/3/tv/%d/season/%d/episode/%d/images", id, season, episode), url.Values{}, params...); err != nil {
66 return nil, err
67 }
68 return i, nil
69 }
70
71 // TVEpisodeTranslations retrieves all of the translations for an episode of a TV show
72 func (t *TMDB) TVEpisodeTranslations(id int64, season int64, episode int64, params ...option) (*Translations, error) {
73 tr := new(Translations)
74 if err := t.get(tr, fmt.Sprintf("/3/tv/%d/season/%d/episode/%d/translations", id, season, episode), url.Values{}, params...); err != nil {
75 return nil, err
76 }
77 return tr, nil
78 }
79
80 // TVEpisodeVideos retrieves all of the videos for an episode of a TV show
81 func (t *TMDB) TVEpisodeVideos(id int64, season int64, episode int64, params ...option) (*Videos, error) {
82 v := new(Videos)
83 if err := t.get(v, fmt.Sprintf("/3/tv/%d/season/%d/episode/%d/videos", id, season, episode), url.Values{}, params...); err != nil {
84 return nil, err
85 }
86 return v, nil
87 }