comparison src/services/anilist.cc @ 284:e66ffc338d82

anime: refactor title structure to a map
author Paper <paper@paper.us.eu.org>
date Wed, 08 May 2024 16:21:05 -0400
parents 657fda1b9cac
children 53e3c015a973
comparison
equal deleted inserted replaced
283:969a3e8c79c5 284:e66ffc338d82
108 } 108 }
109 return "CURRENT"; 109 return "CURRENT";
110 } 110 }
111 111
112 void ParseTitle(const nlohmann::json& json, Anime::Anime& anime) { 112 void ParseTitle(const nlohmann::json& json, Anime::Anime& anime) {
113 anime.SetNativeTitle(JSON::GetString<std::string>(json, "/native"_json_pointer, "")); 113 nlohmann::json::json_pointer g = "/native"_json_pointer;
114 anime.SetEnglishTitle(JSON::GetString<std::string>(json, "/english"_json_pointer, "")); 114 if (json.contains(g) && json[g].is_string())
115 anime.SetRomajiTitle(JSON::GetString<std::string>(json, "/romaji"_json_pointer, "")); 115 anime.SetTitle(Anime::TitleLanguage::Native, json[g]);
116
117 g = "/english"_json_pointer;
118 if (json.contains(g) && json[g].is_string())
119 anime.SetTitle(Anime::TitleLanguage::English, json[g]);
120
121 g = "/romaji"_json_pointer;
122 if (json.contains(g) && json[g].is_string())
123 anime.SetTitle(Anime::TitleLanguage::Romaji, json[g]);
116 } 124 }
117 125
118 int ParseMediaJson(const nlohmann::json& json) { 126 int ParseMediaJson(const nlohmann::json& json) {
119 int id = JSON::GetNumber(json, "/id"_json_pointer); 127 int id = JSON::GetNumber(json, "/id"_json_pointer);
120 if (!id) 128 if (!id)