comparison include/core/anime.h @ 286:53e3c015a973

anime: initial cross-service support currently the Kitsu and MAL services don't work when chosen in the GUI. This is because they haven't been implemented yet :)
author Paper <paper@paper.us.eu.org>
date Wed, 08 May 2024 16:44:27 -0400
parents e66ffc338d82
children b1f4d1867ab1
comparison
equal deleted inserted replaced
285:65df2813d0de 286:53e3c015a973
84 84
85 constexpr std::array<TitleLanguage, 3> TitleLanguages{TitleLanguage::Romaji, TitleLanguage::Native, TitleLanguage::English}; 85 constexpr std::array<TitleLanguage, 3> TitleLanguages{TitleLanguage::Romaji, TitleLanguage::Native, TitleLanguage::English};
86 86
87 enum class Service { 87 enum class Service {
88 None, 88 None,
89 AniList 89 AniList,
90 }; 90 MyAnimeList,
91 91 Kitsu
92 constexpr std::array<Service, 1> Services{Service::AniList}; 92 };
93
94 /* this doesn't include MAL and Kitsu because they aren't really
95 * "valid" services yet. */
96 constexpr std::array<Service, 3> Services{
97 Service::AniList,
98 Service::MyAnimeList,
99 Service::Kitsu
100 };
93 101
94 enum class ScoreFormat { 102 enum class ScoreFormat {
95 Point100, // 0-100 103 Point100, // 0-100
96 Point10Decimal, // 0.0-10.0 104 Point10Decimal, // 0.0-10.0
97 Point10, // 0-10 105 Point10, // 0-10
116 std::string notes; 124 std::string notes;
117 }; 125 };
118 126
119 struct SeriesInformation { 127 struct SeriesInformation {
120 int id; 128 int id;
129 std::map<Service, std::string> ids;
121 std::map<TitleLanguage, std::string> titles; 130 std::map<TitleLanguage, std::string> titles;
122 std::vector<std::string> synonyms; 131 std::vector<std::string> synonyms;
123 int episodes = 0; 132 int episodes = 0;
124 SeriesStatus status = SeriesStatus::Unknown; 133 SeriesStatus status = SeriesStatus::Unknown;
125 Date air_date; 134 Date air_date;
158 void SetUserTimeUpdated(uint64_t updated); 167 void SetUserTimeUpdated(uint64_t updated);
159 void SetUserNotes(std::string const& notes); 168 void SetUserNotes(std::string const& notes);
160 169
161 /* Series data */ 170 /* Series data */
162 int GetId() const; 171 int GetId() const;
172 std::optional<std::string> GetServiceId(Service service) const;
163 std::optional<std::string> GetTitle(TitleLanguage language) const; 173 std::optional<std::string> GetTitle(TitleLanguage language) const;
164 std::vector<std::string> GetTitleSynonyms() const; 174 std::vector<std::string> GetTitleSynonyms() const;
165 int GetEpisodes() const; 175 int GetEpisodes() const;
166 SeriesStatus GetAiringStatus() const; 176 SeriesStatus GetAiringStatus() const;
167 Date GetAirDate() const; 177 Date GetAirDate() const;
171 SeriesSeason GetSeason() const; 181 SeriesSeason GetSeason() const;
172 int GetAudienceScore() const; 182 int GetAudienceScore() const;
173 std::string GetSynopsis() const; 183 std::string GetSynopsis() const;
174 int GetDuration() const; 184 int GetDuration() const;
175 std::string GetPosterUrl() const; 185 std::string GetPosterUrl() const;
176 std::string GetServiceUrl() const; 186 std::optional<std::string> GetServiceUrl(Service service) const;
177 187
178 void SetId(int id); 188 void SetId(int id);
189 void SetServiceId(Service service, const std::string& id);
179 void SetTitle(TitleLanguage language, const std::string& title); 190 void SetTitle(TitleLanguage language, const std::string& title);
180 void SetTitleSynonyms(std::vector<std::string> const& synonyms); 191 void SetTitleSynonyms(std::vector<std::string> const& synonyms);
181 void AddTitleSynonym(std::string const& synonym); 192 void AddTitleSynonym(std::string const& synonym);
182 void SetEpisodes(int episodes); 193 void SetEpisodes(int episodes);
183 void SetAiringStatus(SeriesStatus status); 194 void SetAiringStatus(SeriesStatus status);