#pragma once #include #include #include #include #include #include "cache.h" typedef void CURL; class Caches_in_Powertrails; class Powertrail { public: uint number; std::string name; std::tm date; std::string date_str; uint treshold_perc; std::unordered_set caches; uint found = 0; bool completed = 0; std::string link() const; std::string link_name() const; std::string safe_name() const; }; class PowertrailDB { public: std::unordered_map data; void get_trail(uint n); CURL* curl; mutable std::string curl_output; PowertrailDB(); ~PowertrailDB(); void read_from_json(std::string file); void save_to_json(std::string file); private: inline const static std::string url = "https://opencaching.pl/powerTrail.php?ptAction=showSerie&ptrail="; inline const static std::string url2 = "https://opencaching.pl/powerTrail/ajaxGetPowerTrailCaches.php?ptAction=showSerie&ptrail="; static size_t write_cb(char* ptr, size_t size, size_t nmemb, void* userdata); }; class Caches_in_Powertrails { public: std::unordered_map data; Caches_in_Powertrails(PowertrailDB db); Caches_in_Powertrails() {}; void read_from_json(std::string file); void save_to_json(std::string file); // void update_caches(Caches& cc); private: }; typedef std::vector pPowertrails;