From 126a129b50e37adc6dd9eda9fb8471c88105c844 Mon Sep 17 00:00:00 2001 From: Florent Sorel Date: Tue, 18 Jun 2024 23:43:32 +0200 Subject: [PATCH] feat: add shows/unrated --- README.md | 2 +- data/shows/unrated.json | 126 ++++++++++++++++++++++++++++++++++++++++ shows.go | 17 ++++++ shows_test.go | 16 +++++ 4 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 data/shows/unrated.json diff --git a/README.md b/README.md index 9ca5eb3..91af502 100644 --- a/README.md +++ b/README.md @@ -289,7 +289,7 @@ func main() { - [x] Display the list of available series genres (GET /shows/genres) - [x] Display the seasons of the series (GET /shows/seasons) - [x] Display blog articles that talk about the series (GET /shows/articles) - - [ ] Retrieve the list of finished and unrated series (GET /shows/unrated) - Token + - [x] Retrieve the list of finished and unrated series (GET /shows/unrated) - Token
Subtitles diff --git a/data/shows/unrated.json b/data/shows/unrated.json new file mode 100644 index 0000000..a5d2a39 --- /dev/null +++ b/data/shows/unrated.json @@ -0,0 +1,126 @@ +{ + "shows": [ + { + "id": 34292, + "thetvdb_id": 427202, + "imdb_id": "tt9859436", + "title": "The Walking Dead: The Ones Who Live", + "seasons": "1", + "episodes": "6", + "followers": "5729", + "creation": "2024", + "description": "Rick et Michonne sont plongés dans un autre monde, construit sur les cendres d'une guerre avec les morts. Et en définitive, d'une guerre avec les vivants. Peuvent-ils se retrouver et se rappeler qui ils étaient dans un endroit et une situation différents de tout ce qu'ils ont connu ? Sont-ils ennemis ? Amants ? Victimes ? Victorieux ? Sans l'un et l'autre sont-ils même vivants ou vont-ils découvrir qu'ils sont eux aussi des zombies ?", + "poster": "https://pictures.betaseries.com/fonds/poster/179f31ad3e0afd0fb0425aa91cd43b6e.jpg" + }, + { + "id": 35552, + "thetvdb_id": 431798, + "imdb_id": "tt27415863", + "title": "Fiasco (2024)", + "seasons": "1", + "episodes": "7", + "followers": "7132", + "creation": "2024", + "description": "Raphaël Valande entame le tournage de son premier long-métrage : une aventure traversant les époques depuis la préhistoire jusqu’au débarquement en passant par les Vikings… pour rendre hommage à la vie héroïque de sa grand-mère résistante. Mais rapidement, les problèmes s’accumulent et le tournage tourne peu à peu au cauchemar. Et pour cause: quelqu’un de l’équipe tente de saborder son film de l’intérieur...", + "poster": "https://pictures.betaseries.com/fonds/poster/379c0715ca3cc56ba77875642d1ea94c.jpg" + }, + { + "id": 21106, + "thetvdb_id": 362472, + "imdb_id": "tt9140554", + "title": "Loki", + "seasons": "2", + "episodes": "12", + "followers": "43033", + "creation": "2021", + "description": "Alors que Loki a été tué par Thanos dans Avengers : Infinity War, l'histoire prend place plus tôt, en 2012, dans une réalité alternative créée par le Casse temporel des Avengers après que le Loki de 2012 se fut échappé avec le Tesseract. Le Dieu de la Malice veut se servir des pouvoirs du Tesseract pour changer le cours de l'histoire humaine. Après son évasion, il est emmené auprès du Tribunal des Variations Anachroniques (ou TVA), un organisme qui agit pour empêcher toute personne qui tenterait d'altérer le passé ou le futur.", + "poster": "https://pictures.betaseries.com/fonds/poster/6f773cdbb40348ae47f41a2ad63b1039.jpg" + }, + { + "id": 6, + "thetvdb_id": 73739, + "imdb_id": "tt0411008", + "title": "Lost", + "seasons": "6", + "episodes": "122", + "followers": "61571", + "creation": "2004", + "description": "Après le crash de leur avion sur une île perdue, les survivants doivent apprendre à cohabiter et survivre dans cet environnement hostile. Bien vite, ils se rendent compte qu'une menace semble planer sur l'île...", + "poster": "https://pictures.betaseries.com/fonds/poster/bc092e4609e2fa1ee9d6f18b1a86e9f3.jpg" + }, + { + "id": 18020, + "thetvdb_id": 349310, + "imdb_id": "tt7493974", + "title": "Bodyguard (2018)", + "seasons": "1", + "episodes": "6", + "followers": "23396", + "creation": "2018", + "description": "David Budd, vétéran de guerre héroïque mais instable, travaille maintenant pour la police de Londres, au Service de protection des membres de la famille royale et des personnalités. Quand il est chargé de protéger l'ambitieuse et puissante ministre de l'Intérieur Julia Montague, dont la politique représente tout ce qu'il méprise, Budd se trouve déchiré entre son devoir et ses convictions.\r\n", + "poster": "https://pictures.betaseries.com/fonds/poster/e0c663caddf55d5387f4877223f32b34.jpg" + }, + { + "id": 30497, + "thetvdb_id": 410658, + "imdb_id": "tt15469946", + "title": "Orelsan: Montre jamais ça à personne", + "seasons": "2", + "episodes": "10", + "followers": "10923", + "creation": "2021", + "description": "Au début des années 2000, Aurélien Cotentin est un jeune provincial de classe moyenne à l’avenir flou. Quand il se lance avec ses amis dans le rap, il n’a absolument rien pour réussir. Mais, suivi à la trace par la caméra de son petit frère, il va surmonter épreuves et polémiques pour redéfinir les contours du rap et devenir l’un des artistes français les plus populaires de sa génération.", + "poster": "https://pictures.betaseries.com/fonds/poster/cbb4e0d109d6bc6826469d76e312ef1e.jpg" + }, + { + "id": 16472, + "thetvdb_id": 334824, + "imdb_id": "tt5753856", + "title": "Dark", + "seasons": "3", + "episodes": "26", + "followers": "41023", + "creation": "2017", + "description": "Quatre familles affolées par la disparition d'un enfant cherchent des réponses et tombent sur un mystère impliquant trois générations qui finit de les déstabiliser.", + "poster": "https://pictures.betaseries.com/fonds/poster/c47135385da176a87d0dd9177c5f6a41.jpg" + }, + { + "id": 6851, + "thetvdb_id": 269586, + "imdb_id": "tt2467372", + "title": "Brooklyn Nine-Nine", + "seasons": "8", + "episodes": "155", + "followers": "44751", + "creation": "2013", + "description": "La vie au sein du commissariat de police de Brooklyn n'est pas de tout repos : une pléiade d'inspecteurs un poil loufoques doivent jongler entre leur mission de protéger et servir les habitants de la ville, leur vie personnelle et surtout celle du bureau.", + "poster": "https://pictures.betaseries.com/fonds/poster/215beb569141729c7adad4b44a4c4c3c.jpg" + }, + { + "id": 22660, + "thetvdb_id": 371079, + "imdb_id": "tt13286778", + "title": "La Flamme", + "seasons": "2", + "episodes": "20", + "followers": "23747", + "creation": "2020", + "description": "La vie lui a tout donné... sauf une co-pilote. Pendant neuf semaines dans une sublime villa, treize femmes vont s’affronter pour séduire Marc, pilote de ligne, et tenter d’allumer en lui... La Flamme ! Alors, armez les toboggans, vérifiez la porte opposée... Marc va emmener ses prétendantes au septième ciel !", + "poster": "https://pictures.betaseries.com/fonds/poster/force-628b799969e22.jpg" + }, + { + "id": 21071, + "thetvdb_id": 364468, + "imdb_id": "tt10423460", + "title": "Family Business", + "seasons": "3", + "episodes": "18", + "followers": "32520", + "creation": "2019", + "description": "Quand ils apprennent de source « sûre » que le cannabis va être légalisé, un entrepreneur et sa famille décident de transformer leur boucherie sur le déclin en coffee-shop.", + "poster": "https://pictures.betaseries.com/fonds/poster/8c7bca34879d4ed8b3ba29861ad985d0.jpg" + } + ], + "total": 78, + "errors": [] +} diff --git a/shows.go b/shows.go index 7c29137..358ab71 100644 --- a/shows.go +++ b/shows.go @@ -397,6 +397,13 @@ type ShowsArticlesParams struct { Locale *LocaleType `url:"locale"` } +type ShowsUnratedParams struct { + PerPage *int `url:"nbpp"` + Page *int `url:"page"` + Date *string `url:"date"` + Locale *LocaleType `url:"locale"` +} + // AddNote rate a series. // Require a valid token. func (s *ShowService) AddNote(ctx context.Context, params ShowsAddNoteParams) (*Show, error) { @@ -694,3 +701,13 @@ func (s *ShowService) Articles(ctx context.Context, params ShowsArticlesParams) } return res.Articles, nil } + +// Unrated retrieve the list of finished and unrated series for the authenticated member. +// Require a valid token. +func (s *ShowService) Unrated(ctx context.Context, params ShowsUnratedParams) ([]Show, error) { + var res showsResponse + if err := s.doRequest(ctx, http.MethodGet, "/shows/unrated", params, &res); err != nil { + return nil, err + } + return res.Shows, nil +} diff --git a/shows_test.go b/shows_test.go index 28b4e90..65a94a3 100644 --- a/shows_test.go +++ b/shows_test.go @@ -1017,3 +1017,19 @@ func TestShowService_Articles(t *testing.T) { assert.Equal(t, BoolFromString(true), articles[0].Sticky) } + +func TestShowService_Unrated(t *testing.T) { + data, err := os.ReadFile("data/shows/unrated.json") + assert.NoError(t, err) + + ts, bc := setup(t, "GET", fmt.Sprintf("/%s", "shows/unrated?date=all"), string(data)) + defer ts.Close() + + shows, err := bc.Shows.Unrated(context.Background(), ShowsUnratedParams{ + Date: String("all"), + }) + assert.NoError(t, err) + + assert.Equal(t, 10, len(shows)) + +}