2022-07-12 10:54:56 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <unordered_set>
|
|
|
|
#include <unordered_map>
|
|
|
|
#include <ctime>
|
|
|
|
|
|
|
|
#include "cache.h"
|
|
|
|
|
|
|
|
typedef void CURL;
|
|
|
|
class Caches_in_Powertrails;
|
|
|
|
|
|
|
|
class Powertrail {
|
|
|
|
public:
|
2022-07-13 16:30:26 +00:00
|
|
|
uint number;
|
2022-07-12 10:54:56 +00:00
|
|
|
std::string name;
|
|
|
|
std::tm date;
|
|
|
|
std::string date_str;
|
2022-07-13 16:30:26 +00:00
|
|
|
uint treshold_perc;
|
2022-07-12 10:54:56 +00:00
|
|
|
std::unordered_set<std::string> caches;
|
|
|
|
|
2022-07-13 16:30:26 +00:00
|
|
|
uint found = 0;
|
2022-07-12 10:54:56 +00:00
|
|
|
bool completed = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
class PowertrailDB {
|
|
|
|
public:
|
2022-07-13 17:40:26 +00:00
|
|
|
std::unordered_map<uint, Powertrail> data;
|
|
|
|
void get_trail(uint n);
|
2022-07-12 10:54:56 +00:00
|
|
|
|
|
|
|
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<std::string, int> 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::unordered_map<int, const Powertrail*> pPowertrails;
|