Mercurial > minori
comparison src/services/kitsu.cc @ 388:83aa0ddd1a46
kitsu: implement GetSeason
| author | Paper <paper@tflc.us> |
|---|---|
| date | Thu, 06 Nov 2025 09:53:06 -0500 |
| parents | 04a894e96355 |
| children | 1e5d922fe82b |
comparison
equal
deleted
inserted
replaced
| 387:04a894e96355 | 388:83aa0ddd1a46 |
|---|---|
| 573 return ids; | 573 return ids; |
| 574 } | 574 } |
| 575 | 575 |
| 576 bool GetSeason(Anime::Season season) | 576 bool GetSeason(Anime::Season season) |
| 577 { | 577 { |
| 578 return false; | 578 static const std::map<Anime::Season::Name, std::string> map = { |
| 579 {Anime::Season::Name::Winter, "winter"}, | |
| 580 {Anime::Season::Name::Spring, "spring"}, | |
| 581 {Anime::Season::Name::Summer, "summer"}, | |
| 582 {Anime::Season::Name::Autumn, "fall"}, | |
| 583 }; | |
| 584 | |
| 585 session.SetStatusBar(Strings::Translate("Kitsu: Retrieving season data...")); | |
| 586 | |
| 587 std::map<std::string, std::string> params = anime_params; | |
| 588 params["filter[season]"] = map.at(season.season); | |
| 589 params["filter[seasonYear]"] = Strings::ToUtf8String(season.year); | |
| 590 // ... for some reason, this seems to be buggy | |
| 591 //AddAnimeFilters(params); | |
| 592 | |
| 593 std::optional<nlohmann::json> response = SendJSONAPIRequest("/anime", params); | |
| 594 if (!response) | |
| 595 return false; | |
| 596 | |
| 597 const auto &json = response.value(); | |
| 598 | |
| 599 if (!json.contains("/data"_json_pointer) || !json["/data"_json_pointer].is_array()) { | |
| 600 session.SetStatusBar( | |
| 601 Strings::Translate("Kitsu: Server returned bad data when trying to retrieve search results!")); | |
| 602 return false; | |
| 603 } | |
| 604 | |
| 605 for (const auto &item : json["/data"_json_pointer]) | |
| 606 ParseAnimeJson(item); | |
| 607 | |
| 608 return true; | |
| 579 } | 609 } |
| 580 | 610 |
| 581 int UpdateAnimeEntry(int id) | 611 int UpdateAnimeEntry(int id) |
| 582 { | 612 { |
| 583 return 0; | 613 return 0; |
