annotate include/core/anime_db.h @ 327:b5d6c27c308f

anime: refactor Anime::SeriesSeason to Season class ToLocalString has also been altered to take in both season and year because lots of locales actually treat formatting seasons differently! most notably is Russian which adds a suffix at the end to notate seasons(??)
author Paper <paper@paper.us.eu.org>
date Thu, 13 Jun 2024 01:49:18 -0400
parents 10096c5489e3
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: 258
diff changeset
1 #ifndef MINORI_CORE_ANIME_DB_H_
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
2 #define MINORI_CORE_ANIME_DB_H_
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 83
diff changeset
3
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
4 #include "core/anime.h"
175
9b10175be389 dep/json: update to v3.11.3
Paper <mrpapersonic@gmail.com>
parents: 174
diff changeset
5 #include "json/json_fwd.hpp"
76
3364fadc8a36 *: format source code
Paper <mrpapersonic@gmail.com>
parents: 64
diff changeset
6 #include <string>
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
7 #include <unordered_map>
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
8
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
9 namespace Anime {
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
11 class Database {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 177
diff changeset
12 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 177
diff changeset
13 std::unordered_map<int, Anime> items;
319
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
14 size_t GetTotalAnimeAmount() const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
15 size_t GetTotalEpisodeAmount() const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
16 size_t GetTotalWatchedAmount() const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
17 size_t GetTotalPlannedAmount() const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
18 double GetAverageScore() const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
19 double GetScoreDeviation() const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
20 size_t GetListsAnimeAmount(ListStatus status) const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
21 int LookupAnimeTitle(const std::string& title) const;
173
de0a8d2f28b3 WILL NOT COMPILE: sample export ability for anime db
Paper <mrpapersonic@gmail.com>
parents: 85
diff changeset
22
319
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
23 bool GetDatabaseAsJSON(nlohmann::json& json) const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
24 bool SaveDatabaseToDisk() const;
174
f88eda79c60a anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents: 173
diff changeset
25
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 177
diff changeset
26 bool ParseDatabaseJSON(const nlohmann::json& json);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 177
diff changeset
27 bool LoadDatabaseFromDisk();
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
28
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
29 /* These are here to make sure that our service IDs don't collide
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
30 * and make the whole thing go boom. */
319
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
31 int GetUnusedId() const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
32 int LookupServiceId(Service service, const std::string& id_to_find) const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
33 int LookupServiceIdOrUnused(Service service, const std::string& id_to_find) const;
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
34
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
35 /* when syncing we don't want to keep deleted anime */
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
36 void RemoveAllUserData();
326
10096c5489e3 anime/db: refactor anime_season_db out
Paper <paper@paper.us.eu.org>
parents: 319
diff changeset
37
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
38 std::vector<int> GetAllAnimeForSeason(Season season);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
39 };
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
40
11
fc1bf97c528b *: use C++11 standard
Paper <mrpapersonic@gmail.com>
parents: 10
diff changeset
41 extern Database db;
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
42
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
43 } // namespace Anime
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 83
diff changeset
44
261
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
45 #endif // MINORI_CORE_ANIME_DB_H_