Mercurial > minori
view include/core/anime_db.h @ 382:0265e125f680
filesystem: implement filesystem watcher
I also ported the library code to use it as well. Once we implement
proper directory watching on Windows (and maybe others) this will
be fairly useful :)
| author | Paper <paper@tflc.us> |
|---|---|
| date | Thu, 06 Nov 2025 03:16:55 -0500 |
| parents | 5eaafed6c10b |
| children |
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 <QImage> #include <string> #include <unordered_map> namespace Anime { class Database { public: std::unordered_map<int, Anime> items; size_t GetTotalAnimeAmount() const; size_t GetTotalEpisodeAmount() const; size_t GetTotalWatchedAmount() const; size_t GetTotalPlannedAmount() const; double GetAverageScore() const; double GetScoreDeviation() const; size_t GetListsAnimeAmount(ListStatus status) const; int LookupAnimeTitle(const std::string &title) const; bool GetDatabaseAsJSON(nlohmann::json &json) const; bool SaveDatabaseToDisk() const; 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() const; int LookupServiceId(Service service, const std::string &id_to_find) const; int LookupServiceIdOrUnused(Service service, const std::string &id_to_find) const; /* when syncing we don't want to keep deleted anime */ void RemoveAllUserData(); std::vector<int> GetAllAnimeForSeason(Season season); QImage GetAnimePoster(int id); }; extern Database db; } // namespace Anime #endif // MINORI_CORE_ANIME_DB_H_
