annotate include/core/anime.h @ 337:a7d4e5107531

dep/animone: REFACTOR ALL THE THINGS 1: animone now has its own syntax divergent from anisthesia, making different platforms actually have their own sections 2: process names in animone are now called `comm' (this will probably break things). this is what its called in bsd/linux so I'm just going to use it everywhere 3: the X11 code now checks for the existence of a UTF-8 window title and passes it if available 4: ANYTHING THATS NOT LINUX IS 100% UNTESTED AND CAN AND WILL BREAK! I still actually need to test the bsd code. to be honest I'm probably going to move all of the bsds into separate files because they're all essentially different operating systems at this point
author Paper <paper@paper.us.eu.org>
date Wed, 19 Jun 2024 12:51:15 -0400
parents b5d6c27c308f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
261
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 260
diff changeset
1 #ifndef MINORI_CORE_ANIME_H_
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 260
diff changeset
2 #define MINORI_CORE_ANIME_H_
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 260
diff changeset
3
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 324
diff changeset
4 #include "core/anime_season.h"
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
5 #include "core/date.h"
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 324
diff changeset
6
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
7 #include <array>
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
8 #include <map>
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
9 #include <vector>
264
9a04802848c0 *: improve multiple things
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
10 #include <optional>
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
11
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
12 namespace Anime {
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
13
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
14 enum class ListStatus {
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
15 NotInList = 0,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
16 Current,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
17 Completed,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
18 Paused,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
19 Dropped,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
20 Planning
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
21 };
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
22
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
23 constexpr std::array<ListStatus, 5> ListStatuses{
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
24 ListStatus::Current, ListStatus::Completed, ListStatus::Paused,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
25 ListStatus::Dropped, ListStatus::Planning
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
26 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
27
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
28 enum class SeriesStatus {
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
29 Unknown = 0,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
30 Finished,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
31 Releasing,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
32 NotYetReleased,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
33 Cancelled,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
34 Hiatus
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
35 };
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
36
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
37 constexpr std::array<SeriesStatus, 6> SeriesStatuses{
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
38 SeriesStatus::Unknown,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
39 SeriesStatus::Finished,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
40 SeriesStatus::Releasing,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
41 SeriesStatus::NotYetReleased,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
42 SeriesStatus::Cancelled,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
43 SeriesStatus::Hiatus
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
44 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
45
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
46 enum class SeriesFormat {
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
47 Unknown = 0,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
48 Tv,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
49 TvShort,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
50 Movie,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
51 Special,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
52 Ova,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
53 Ona,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
54 Music
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
55 };
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
56
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
57 constexpr std::array<SeriesFormat, 8> SeriesFormats{
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
58 SeriesFormat::Unknown,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
59 SeriesFormat::Tv,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
60 SeriesFormat::TvShort,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
61 SeriesFormat::Movie,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
62 SeriesFormat::Special,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
63 SeriesFormat::Ova,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
64 SeriesFormat::Ona,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
65 SeriesFormat::Music
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
66 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
67
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
68 enum class TitleLanguage {
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
69 Romaji,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
70 Native,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
71 English
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
72 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
73
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
74 constexpr std::array<TitleLanguage, 3> TitleLanguages{TitleLanguage::Romaji, TitleLanguage::Native, TitleLanguage::English};
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
75
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
76 enum class Service {
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
77 None,
286
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
78 AniList,
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
79 MyAnimeList,
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
80 Kitsu
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
81 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
82
286
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
83 /* this doesn't include MAL and Kitsu because they aren't really
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
84 * "valid" services yet. */
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
85 constexpr std::array<Service, 3> Services{
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
86 Service::AniList,
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
87 Service::MyAnimeList,
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
88 Service::Kitsu
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
89 };
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
90
185
62e336597bb7 anime list: add support for different score formats
Paper <mrpapersonic@gmail.com>
parents: 184
diff changeset
91 enum class ScoreFormat {
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
92 Point100, // 0-100
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
93 Point10Decimal, // 0.0-10.0
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
94 Point10, // 0-10
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
95 Point5, // 0-5, should be represented in stars
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
96 Point3 // 1-3, should be represented in smileys
185
62e336597bb7 anime list: add support for different score formats
Paper <mrpapersonic@gmail.com>
parents: 184
diff changeset
97 };
62e336597bb7 anime list: add support for different score formats
Paper <mrpapersonic@gmail.com>
parents: 184
diff changeset
98
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
99 constexpr std::array<ScoreFormat, 5> ScoreFormats{ScoreFormat::Point100, ScoreFormat::Point10Decimal,
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
100 ScoreFormat::Point10, ScoreFormat::Point5, ScoreFormat::Point3};
189
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 185
diff changeset
101
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
102 struct ListInformation {
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 286
diff changeset
103 std::string id;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
104 int progress = 0;
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
105 int score = 0; // this will ALWAYS be in POINT_100 format internally
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
106 ListStatus status = ListStatus::NotInList;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
107 Date started;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
108 Date completed;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
109 bool is_private = false;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
110 unsigned int rewatched_times = 0;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
111 bool rewatching = false;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
112 uint64_t updated = 0;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
113 std::string notes;
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
114 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
115
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
116 struct SeriesInformation {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
117 int id;
286
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
118 std::map<Service, std::string> ids;
284
e66ffc338d82 anime: refactor title structure to a map
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
119 std::map<TitleLanguage, std::string> titles;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
120 std::vector<std::string> synonyms;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
121 int episodes = 0;
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
122 SeriesStatus status = SeriesStatus::Unknown;
324
5d3c9b31aa6e anime: add completed date member
Paper <paper@paper.us.eu.org>
parents: 320
diff changeset
123 Date started;
5d3c9b31aa6e anime: add completed date member
Paper <paper@paper.us.eu.org>
parents: 320
diff changeset
124 Date completed;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
125 std::vector<std::string> genres;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
126 std::vector<std::string> producers;
279
657fda1b9cac *: clean up enums
Paper <paper@paper.us.eu.org>
parents: 264
diff changeset
127 SeriesFormat format = SeriesFormat::Unknown;
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 286
diff changeset
128 double audience_score = 0;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
129 std::string synopsis;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
130 int duration = 0;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
131 std::string poster_url;
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
132 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
133
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
134 class Anime {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
135 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
136 /* User list data */
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 286
diff changeset
137 std::string GetUserId() const;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
138 ListStatus GetUserStatus() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
139 int GetUserProgress() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
140 int GetUserScore() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
141 std::string GetUserPresentableScore() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
142 Date GetUserDateStarted() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
143 Date GetUserDateCompleted() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
144 bool GetUserIsPrivate() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
145 unsigned int GetUserRewatchedTimes() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
146 bool GetUserIsRewatching() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
147 uint64_t GetUserTimeUpdated() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
148 std::string GetUserNotes() const;
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
149
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 286
diff changeset
150 void SetUserId(const std::string& id);
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
151 void SetUserStatus(ListStatus status);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
152 void SetUserScore(int score);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
153 void SetUserProgress(int progress);
320
1b5c04268d6a services/kitsu: ACTUALLY finish GetAnimeList
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
154 void SetUserDateStarted(const Date& started);
1b5c04268d6a services/kitsu: ACTUALLY finish GetAnimeList
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
155 void SetUserDateCompleted(const Date& completed);
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
156 void SetUserIsPrivate(bool is_private);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
157 void SetUserRewatchedTimes(int rewatched);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
158 void SetUserIsRewatching(bool rewatching);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
159 void SetUserTimeUpdated(uint64_t updated);
320
1b5c04268d6a services/kitsu: ACTUALLY finish GetAnimeList
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
160 void SetUserNotes(const std::string& notes);
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
161
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
162 /* Series data */
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
163 int GetId() const;
286
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
164 std::optional<std::string> GetServiceId(Service service) const;
284
e66ffc338d82 anime: refactor title structure to a map
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
165 std::optional<std::string> GetTitle(TitleLanguage language) const;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
166 std::vector<std::string> GetTitleSynonyms() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
167 int GetEpisodes() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
168 SeriesStatus GetAiringStatus() const;
324
5d3c9b31aa6e anime: add completed date member
Paper <paper@paper.us.eu.org>
parents: 320
diff changeset
169 Date GetStartedDate() const;
5d3c9b31aa6e anime: add completed date member
Paper <paper@paper.us.eu.org>
parents: 320
diff changeset
170 Date GetCompletedDate() const;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
171 std::vector<std::string> GetGenres() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
172 std::vector<std::string> GetProducers() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
173 SeriesFormat GetFormat() const;
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 324
diff changeset
174 Season GetSeason() const;
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 286
diff changeset
175 double GetAudienceScore() const;
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
176 std::string GetSynopsis() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
177 int GetDuration() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
178 std::string GetPosterUrl() const;
286
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
179 std::optional<std::string> GetServiceUrl(Service service) const;
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
180
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
181 void SetId(int id);
286
53e3c015a973 anime: initial cross-service support
Paper <paper@paper.us.eu.org>
parents: 284
diff changeset
182 void SetServiceId(Service service, const std::string& id);
284
e66ffc338d82 anime: refactor title structure to a map
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
183 void SetTitle(TitleLanguage language, const std::string& title);
320
1b5c04268d6a services/kitsu: ACTUALLY finish GetAnimeList
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
184 void SetTitleSynonyms(const std::vector<std::string>& synonyms);
1b5c04268d6a services/kitsu: ACTUALLY finish GetAnimeList
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
185 void AddTitleSynonym(const std::string& synonym);
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
186 void SetEpisodes(int episodes);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
187 void SetAiringStatus(SeriesStatus status);
324
5d3c9b31aa6e anime: add completed date member
Paper <paper@paper.us.eu.org>
parents: 320
diff changeset
188 void SetStartedDate(const Date& date);
5d3c9b31aa6e anime: add completed date member
Paper <paper@paper.us.eu.org>
parents: 320
diff changeset
189 void SetCompletedDate(const Date& date);
320
1b5c04268d6a services/kitsu: ACTUALLY finish GetAnimeList
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
190 void SetGenres(const std::vector<std::string>& genres);
1b5c04268d6a services/kitsu: ACTUALLY finish GetAnimeList
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
191 void SetProducers(const std::vector<std::string>& producers);
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
192 void SetFormat(SeriesFormat format);
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 286
diff changeset
193 void SetAudienceScore(double audience_score);
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
194 void SetSynopsis(std::string synopsis);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
195 void SetDuration(int duration);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
196 void SetPosterUrl(std::string poster);
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
197
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
198 std::string GetUserPreferredTitle() const;
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
199
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
200 /* User stuff */
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
201 void AddToUserList();
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
202 bool IsInUserList() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
203 void RemoveFromUserList();
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
204
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
205 private:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
206 SeriesInformation info_;
264
9a04802848c0 *: improve multiple things
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
207 std::optional<struct ListInformation> list_info_ = std::nullopt;
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
208 };
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
209
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
210 } // namespace Anime
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
211
261
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 260
diff changeset
212 #endif // MINORI_CORE_ANIME_H_