Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add shows/unrated #26

Merged
merged 1 commit into from
Jun 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
</details>
<details>
<summary>Subtitles</summary>
Expand Down
126 changes: 126 additions & 0 deletions data/shows/unrated.json
Original file line number Diff line number Diff line change
@@ -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": []
}
17 changes: 17 additions & 0 deletions shows.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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
}
16 changes: 16 additions & 0 deletions shows_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))

}