Mercurial > minori
view include/core/anime_db.h @ 318:3b355fa948c7
config: use TOML instead of INI
unfortunately, INI is not enough, and causes some paths including
semicolons to break with our current storage of the library folders.
so, I decided to switch to TOML which does support real arrays...
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Wed, 12 Jun 2024 05:25:41 -0400 |
parents | b1f4d1867ab1 |
children | d928ec7b6a0d |
line wrap: on
line source
#ifndef MINORI_CORE_ANIME_DB_H_ #define MINORI_CORE_ANIME_DB_H_ #include "core/anime.h" #include "json/json_fwd.hpp" #include <string> #include <unordered_map> namespace Anime { class Database { public: std::unordered_map<int, Anime> items; size_t GetTotalAnimeAmount(); size_t GetTotalEpisodeAmount(); size_t GetTotalWatchedAmount(); size_t GetTotalPlannedAmount(); double GetAverageScore(); double GetScoreDeviation(); size_t GetListsAnimeAmount(ListStatus status); int GetAnimeFromTitle(const std::string& title); bool GetDatabaseAsJSON(nlohmann::json& json); bool SaveDatabaseToDisk(); bool ParseDatabaseJSON(const nlohmann::json& json); bool LoadDatabaseFromDisk(); /* These are here to make sure that our service IDs don't collide * and make the whole thing go boom. */ int GetUnusedId(); int LookupServiceId(Service service, const std::string& id_to_find); int LookupServiceIdOrUnused(Service service, const std::string& id_to_find); }; extern Database db; } // namespace Anime #endif // MINORI_CORE_ANIME_DB_H_