From d4d8011be131b25596bd61db620c2e60f4194e99 Mon Sep 17 00:00:00 2001 From: Tomasz Golinski Date: Mon, 18 Jul 2022 22:13:27 +0200 Subject: [PATCH] Add some more data to powertrails table --- common.cpp | 2 +- geo.css | 8 ++++++++ geostat.cpp | 33 ++++++++++++++++++++++++--------- powertrail.h | 4 ++++ traildb.cpp | 2 +- 5 files changed, 38 insertions(+), 11 deletions(-) diff --git a/common.cpp b/common.cpp index 22a7ac8..a4392c1 100644 --- a/common.cpp +++ b/common.cpp @@ -324,7 +324,7 @@ void header_html() { std::cout << "\n"; std::cout << " \n"; std::cout << " \n"; - std::cout << " \n"; + std::cout << " \n"; std::cout << " Geocaching stats\n"; std::cout << "\n"; std::cout << "\n"; diff --git a/geo.css b/geo.css index b5e6654..f1be0c4 100644 --- a/geo.css +++ b/geo.css @@ -125,6 +125,14 @@ table.list { padding-right: 10px; } +.list td.bad { + background-color: #ffaaaa; +} + +.list td.good { + background-color: #aaffaa; +} + .dt td { background: #DDD; color: #000; diff --git a/geostat.cpp b/geostat.cpp index 043dbec..adbf678 100644 --- a/geostat.cpp +++ b/geostat.cpp @@ -203,15 +203,20 @@ int main(int argc, char** argv) { if (tc.data.count(c.code) > 0) { c.trail = tc.data[c.code]; t.data[c.trail].found++; + if (c.status == ok) + t.data[c.trail].active_caches_not_found--; tt_map[c.trail] = &(t.data[c.trail]); } } for (const auto& i : tt_map) { - if (i.second->found * 100 >= i.second->caches.size() * i.second->treshold_perc ) + i.second->completed_perc = (100 * i.second->found / i.second->caches.size()); + if (i.second->found >= i.second->treshold ) i.second->completed = 1; + else + i.second->needed = i.second->treshold - i.second->found; tt.push_back(i.second); } - std::sort(tt.begin(), tt.end(), [&](const auto& a, const auto& b) { return 1.0 * a->found / a->caches.size() > 1.0 * b->found / b->caches.size(); }); + std::sort(tt.begin(), tt.end(), [&](const auto& a, const auto& b) { return a->completed_perc > b->completed_perc; }); OCpl.get_ftf(uid, tmp); @@ -910,23 +915,33 @@ int main(int argc, char** argv) { std::cout << "\n"; std::cout << ""; std::cout << ""; -// std::cout << ""; + std::cout << ""; std::cout << ""; std::cout << ""; std::cout << ""; + std::cout << ""; + std::cout << ""; std::cout << "\n"; for (auto& i : tt) { - if (i->completed) - std::cout << ""; - else - std::cout << ""; + std::cout << ""; std::cout << " "; std::cout << ""; -// std::cout << ""; + std::cout << ""; std::cout << ""; std::cout << ""; - std::cout << ""; + if (i->completed) + std::cout << ""; + std::cout << ""; + std::cout << ""; std::cout << "\n"; n++; // if (n > LIST_MAX) break; diff --git a/powertrail.h b/powertrail.h index f4535f6..f581d57 100644 --- a/powertrail.h +++ b/powertrail.h @@ -33,7 +33,11 @@ public: uint active_caches = 0; uint found = 0; + uint completed_perc; bool completed = 0; + uint needed = 0; + + uint active_caches_not_found = 0; std::string link() const; std::string link_name() const; diff --git a/traildb.cpp b/traildb.cpp index 1efa52e..166d9dc 100644 --- a/traildb.cpp +++ b/traildb.cpp @@ -12,7 +12,7 @@ using json = nlohmann::json; // } int main() { - Debug::set_debug_level(5); +// Debug::set_debug_level(5); PowertrailDB T; for (int i = 1; i < 1675; i++)
TrailTypeTypeCachesFoundTresholdNeededAvailable
" << n << "" << i->link_name() << "" << i->type << "" << i->get_type() << "" << i->caches.size() << "" << i->found << "" << (100 * i->found / i->caches.size()) << "% / " << i->treshold_perc << "%"; + else if (i->active_caches_not_found < i->needed) + std::cout << ""; + else + std::cout << ""; + std::cout << i->completed_perc << "% / " << i->treshold_perc << "%"; + if (!i->completed) + std::cout << i->needed; + std::cout << "" << i->active_caches_not_found << "