// #include #include // #include // #include // #include #include // #include // #include #include #include #include "tui.hpp" #include "invapi.hpp" #include "YtdlpWrapper.hpp" #include "sqliteinterface.hpp" // namespace py = pybind11; using namespace std; using json = nlohmann::json; namespace fs = std::filesystem; void validateStructConversions() { fs::path here("info.json"); cout << fs::absolute(here) << endl; ifstream ifs; ifs.open(fs::absolute(here).c_str(), ifstream::in); json info = json::parse(ifs); info = info["entries"][0]; Video::video v = info.get(); json j = v; for (auto& i: j.items()) { if (i.key() != "formats") { assert(j.at(i.key()) == info.at(i.key())); cout << i.key() << ": " << i.value() << endl; } } for (auto i: j["formats"]) { for (auto& k: i.items()) { if (k.key() == "quality" || k.key() == "resolution") cout << k.key() << ": " << k.value() << endl; } } } int main(int argc, char **argv) { // validateStructConversions(); // YtdlpWrapper yt; // Video::video vid = yt.getVideoByUrl("https://youtu.be/jy5x7bDYd4o?list=OLAK5uy_kSLxuOA_vBO8SsXaI6PjJbqvsIBnBReGM"); // cout << vid.id << ", " << vid.url << endl; // yt.~YtdlpWrapper(); // vector response = yt.searchVideos("factorio"); // for (Video::video i: response) { // cout << i.id << ", " << i.url << ", " << endl; // } // nlohmann::json j = yt.getJsonSearch("the very thought of you"); // cout << j << endl; // SqliteInterface data; // vector instances = getInstances(); // for (auto i: instances) { // cout << i << " "; // } // cout << endl; // string searchTerm; // int searchingFor{-1}; // Tui ux; // ux.renderSearchBar(searchTerm, searchingFor); }