diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/YtdlpWrapper.cpp | 12 | ||||
-rw-r--r-- | src/YtdlpWrapper.hpp | 4 | ||||
-rw-r--r-- | src/main.cpp | 15 | ||||
-rw-r--r-- | src/tui.cpp | 3 |
4 files changed, 15 insertions, 19 deletions
diff --git a/src/YtdlpWrapper.cpp b/src/YtdlpWrapper.cpp index e0598a0..eca1cbc 100644 --- a/src/YtdlpWrapper.cpp +++ b/src/YtdlpWrapper.cpp @@ -8,14 +8,18 @@ using json = nlohmann::json; namespace py = pybind11; using namespace py::literals; -YtdlpWrapper::YtdlpWrapper() { +py::object YtdlpWrapper::get_ytdl() { + + if (ytdl.is_none()) { + ytdl = py::module::import("yt_dlp").attr("YoutubeDL")(py::dict("ignoreerrors"_a=py::bool_(true))); + } - ytdl = py::module::import("yt_dlp").attr("YoutubeDL")(py::dict({"ignoreerrors": true})); + return ytdl; } json YtdlpWrapper::getJsonSearch(const string& searchTerm) { - const auto info = ytdl.attr("extract_info")("ytsearch:"+searchTerm, "download"_a=py::bool_(false)); - return json::parse(static_cast<std::string>(info)); + py::object info = get_ytdl().attr("extract_info")("ytsearch:"+searchTerm, "download"_a=py::bool_(false)); + return json::parse(info.cast<std::string>()); } diff --git a/src/YtdlpWrapper.hpp b/src/YtdlpWrapper.hpp index a9522ea..6cc045d 100644 --- a/src/YtdlpWrapper.hpp +++ b/src/YtdlpWrapper.hpp @@ -6,10 +6,10 @@ class YtdlpWrapper { public: - YtdlpWrapper(); nlohmann::json getJsonSearch(const string& searchTerm); private: - pybind11::object ytdl; + pybind11::object get_ytdl(); + pybind11::object ytdl = pybind11::none(); }; diff --git a/src/main.cpp b/src/main.cpp index 4267a73..42cba4f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,23 +8,16 @@ #include "tui.cpp" #include "invapi.cpp" -// #include "YtdlpWrapper.cpp" +#include "YtdlpWrapper.cpp" using namespace std; int main() { - Tui tui; - string searchTerm; - int searchingFor; - tui.renderSearchBar(searchTerm, searchingFor); - if (tui.isCancelled()) { - - cerr << "cancelled!" << endl; - return 0; - } - cout << searchTerm << "," << searchingFor << endl; + YtdlpWrapper yt; + nlohmann::json j = yt.getJsonSearch("All Quiet on the Western Front Ost"); + cout << j << endl; // vector<string> instances = getInstances(); // for (auto i: instances) { diff --git a/src/tui.cpp b/src/tui.cpp index 601f468..61ba95e 100644 --- a/src/tui.cpp +++ b/src/tui.cpp @@ -15,7 +15,6 @@ using namespace std; bool Tui::renderSearchBar(string& searchTerm, int& searchingFor) { - cancel = false; auto screen = ftxui::ScreenInteractive::Fullscreen(); @@ -57,7 +56,7 @@ bool Tui::renderSearchBar(string& searchTerm, int& searchingFor) { }) | ftxui::border; }); - + cancel = false; screen.Loop(renderer); return true; |