Mercurial > minori
comparison src/services/anilist.cc @ 305:91ac90a34003
core/time: remove Duration class, use regular functions instead
this class was pretty useless anyway
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Sun, 19 May 2024 15:56:20 -0400 |
| parents | 2115488eb302 |
| children | 34347fd2a2de |
comparison
equal
deleted
inserted
replaced
| 304:2115488eb302 | 305:91ac90a34003 |
|---|---|
| 134 } | 134 } |
| 135 return "CURRENT"; | 135 return "CURRENT"; |
| 136 } | 136 } |
| 137 | 137 |
| 138 static void ParseTitle(const nlohmann::json& json, Anime::Anime& anime) { | 138 static void ParseTitle(const nlohmann::json& json, Anime::Anime& anime) { |
| 139 nlohmann::json::json_pointer g = "/native"_json_pointer; | 139 static const std::unordered_map<Anime::TitleLanguage, nlohmann::json::json_pointer> map = { |
| 140 if (json.contains(g) && json[g].is_string()) | 140 {Anime::TitleLanguage::Native, "/native"_json_pointer}, |
| 141 anime.SetTitle(Anime::TitleLanguage::Native, json[g]); | 141 {Anime::TitleLanguage::English, "/english"_json_pointer}, |
| 142 | 142 {Anime::TitleLanguage::Romaji, "/romaji"_json_pointer}, |
| 143 g = "/english"_json_pointer; | 143 }; |
| 144 if (json.contains(g) && json[g].is_string()) | 144 |
| 145 anime.SetTitle(Anime::TitleLanguage::English, json[g]); | 145 for (const auto& [language, ptr] : map) |
| 146 | 146 if (json.contains(ptr) && json[ptr].is_string()) |
| 147 g = "/romaji"_json_pointer; | 147 anime.SetTitle(language, json[ptr]); |
| 148 if (json.contains(g) && json[g].is_string()) | |
| 149 anime.SetTitle(Anime::TitleLanguage::Romaji, json[g]); | |
| 150 } | 148 } |
| 151 | 149 |
| 152 static int ParseMediaJson(const nlohmann::json& json) { | 150 static int ParseMediaJson(const nlohmann::json& json) { |
| 153 int id = JSON::GetNumber(json, "/id"_json_pointer); | 151 int id = JSON::GetNumber(json, "/id"_json_pointer); |
| 154 if (!id) | 152 if (!id) |
