Add most/least found caches and some columns to other tables

sql-rework
Tomasz Golinski 2020-02-01 12:36:39 +01:00
rodzic e8c4c5bd3c
commit 4bf03ddfa3
1 zmienionych plików z 57 dodań i 0 usunięć

Wyświetl plik

@ -230,6 +230,7 @@ int main(int argc, char** argv) {
Date_Caches sorted_caches_by_hidden;
Sorted_Caches caches_by_fav;
Sorted_Caches caches_by_fav_perc;
Sorted_Caches caches_by_finds;
Caches fcc;
std::tm tmp;
@ -245,9 +246,11 @@ int main(int argc, char** argv) {
sorted_caches_by_hidden.insert({ std::mktime(&tmp), &i });
caches_by_fav.push_back(&i);
caches_by_fav_perc.push_back(&i);
caches_by_finds.push_back(&i);
}
std::sort(caches_by_fav.begin(), caches_by_fav.end(), [&](const Cache* a, const Cache* b) { return a->fav > b->fav; });
std::sort(caches_by_fav_perc.begin(), caches_by_fav_perc.end(), [&](const Cache* a, const Cache* b) { return 1.0 * a->fav / a->founds > 1.0 * b->fav / b-> founds; });
std::sort(caches_by_finds.begin(), caches_by_finds.end(), [&](const Cache* a, const Cache* b) { return a->founds > b->founds; });
std::cout << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
std::cout << "<html>\n";
@ -424,6 +427,7 @@ int main(int argc, char** argv) {
std::cout << "<table class=\"list\">\n";
std::cout << "<tr class=\"list_head\"><td></td>";
std::cout << "<td>Cache</td>";
std::cout << "<td>Type</td>";
std::cout << "<td>Date hidden</td>";
std::cout << "<td>Date found</td>";
std::cout << "</tr>\n";
@ -431,6 +435,7 @@ int main(int argc, char** argv) {
for (auto i = sorted_caches_by_hidden.begin(); i != sorted_caches_by_hidden.end(); i++) {
std::cout << "<tr><td class=\"list_head\">" << n << "</td> ";
std::cout << "<td>" << "<a href=\"" << i->second->link() << "\">" << i->second->safe_name() << " (" << i->second->code << ")</a>" << "</td>";
std::cout << "<td>" << i->second->type << "</td>";
std::cout << "<td>" << i->second->date_hidden << "</td>";
std::cout << "<td>" << i->second->date << "</td>";
std::cout << "</tr>\n";
@ -445,6 +450,7 @@ int main(int argc, char** argv) {
std::cout << "<table class=\"list\">\n";
std::cout << "<tr class=\"list_head\"><td></td>";
std::cout << "<td>Cache</td>";
std::cout << "<td>Type</td>";
std::cout << "<td>Date hidden</td>";
std::cout << "<td>Date found</td>";
std::cout << "</tr>\n";
@ -452,6 +458,7 @@ int main(int argc, char** argv) {
for (auto i = sorted_caches_by_hidden.rbegin(); i != sorted_caches_by_hidden.rend(); i++) {
std::cout << "<tr><td class=\"list_head\">" << n << "</td> ";
std::cout << "<td>" << "<a href=\"" << i->second->link() << "\">" << i->second->safe_name() << " (" << i->second->code << ")</a>" << "</td>";
std::cout << "<td>" << i->second->type << "</td>";
std::cout << "<td>" << i->second->date_hidden << "</td>";
std::cout << "<td>" << i->second->date << "</td>";
std::cout << "</tr>\n";
@ -466,6 +473,7 @@ int main(int argc, char** argv) {
std::cout << "<table class=\"list\">\n";
std::cout << "<tr class=\"list_head\"><td></td>";
std::cout << "<td>Cache</td>";
std::cout << "<td>Type</td>";
std::cout << "<td>Rec.</td>";
std::cout << "<td>Finds</td>";
std::cout << "<td>%</td>";
@ -474,6 +482,7 @@ int main(int argc, char** argv) {
for (auto i : caches_by_fav) {
std::cout << "<tr><td class=\"list_head\">" << n << "</td> ";
std::cout << "<td>" << "<a href=\"" << i->link() << "\">" << i->safe_name() << " (" << i->code << ")</a>" << "</td>";
std::cout << "<td>" << i->type << "</td>";
std::cout << "<td>" << i->fav << "</td>";
std::cout << "<td>" << i->founds << "</td>";
std::cout << "<td>" << std::setprecision(3) << 100.0 * i->fav / i->founds << "%</td>";
@ -489,6 +498,7 @@ int main(int argc, char** argv) {
std::cout << "<table class=\"list\">\n";
std::cout << "<tr class=\"list_head\"><td></td>";
std::cout << "<td>Cache</td>";
std::cout << "<td>Type</td>";
std::cout << "<td>Rec.</td>";
std::cout << "<td>Finds</td>";
std::cout << "<td>%</td>";
@ -497,6 +507,7 @@ int main(int argc, char** argv) {
for (auto i : caches_by_fav_perc) {
std::cout << "<tr><td class=\"list_head\">" << n << "</td> ";
std::cout << "<td>" << "<a href=\"" << i->link() << "\">" << i->safe_name() << " (" << i->code << ")</a>" << "</td>";
std::cout << "<td>" << i->type << "</td>";
std::cout << "<td>" << i->fav << "</td>";
std::cout << "<td>" << i->founds << "</td>";
std::cout << "<td>" << std::setprecision(3) << 100.0 * i->fav / i->founds << "%</td>";
@ -506,6 +517,52 @@ int main(int argc, char** argv) {
}
std::cout << "</table>\n";
n = 1;
std::cout << "<h2>Caches with most finds</h2>\n";
std::cout << "<table class=\"list\">\n";
std::cout << "<tr class=\"list_head\"><td></td>";
std::cout << "<td>Cache</td>";
std::cout << "<td>Type</td>";
std::cout << "<td>Date hidden</td>";
std::cout << "<td>Finds</td>";
std::cout << "</tr>\n";
for (auto i : caches_by_finds) {
std::cout << "<tr><td class=\"list_head\">" << n << "</td> ";
std::cout << "<td>" << "<a href=\"" << i->link() << "\">" << i->safe_name() << " (" << i->code << ")</a>" << "</td>";
std::cout << "<td>" << i->type << "</td>";
std::cout << "<td>" << i->date_hidden << "</td>";
std::cout << "<td>" << i->founds << "</td>";
std::cout << "</tr>\n";
n++;
if (n > LIST_MAX) break;
}
std::cout << "</table>\n";
n = 1;
std::cout << "<h2>Caches with least finds</h2>\n";
std::cout << "<table class=\"list\">\n";
std::cout << "<tr class=\"list_head\"><td></td>";
std::cout << "<td>Cache</td>";
std::cout << "<td>Type</td>";
std::cout << "<td>Date hidden</td>";
std::cout << "<td>Finds</td>";
std::cout << "</tr>\n";
for (auto i = caches_by_finds.rbegin(); i != caches_by_finds.rend(); i++) {
std::cout << "<tr><td class=\"list_head\">" << n << "</td> ";
std::cout << "<td>" << "<a href=\"" << (*i)->link() << "\">" << (*i)->safe_name() << " (" << (*i)->code << ")</a>" << "</td>";
std::cout << "<td>" << (*i)->type << "</td>";
std::cout << "<td>" << (*i)->date_hidden << "</td>";
std::cout << "<td>" << (*i)->founds << "</td>";
std::cout << "</tr>\n";
n++;
if (n > LIST_MAX) break;
}
std::cout << "</table>\n";
short y_min = std::min_element(cc.begin(), cc.end(), [&](const Cache& a, const Cache& b) { return a.date_hidden_tm.tm_year < b.date_hidden_tm.tm_year; })->date_hidden_tm.tm_year;
short y_max = std::max_element(cc.begin(), cc.end(), [&](const Cache& a, const Cache& b) { return a.date_hidden_tm.tm_year < b.date_hidden_tm.tm_year; })->date_hidden_tm.tm_year;