From cdf8d103f1ed6a932eb30b589b578d23ca66a514 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 10 May 2021 18:49:44 +0200 Subject: Add downloader, fix room navigation lag Fix bug where getting next page fails if there is no search bar --- src/DownloadUtils.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/DownloadUtils.cpp') diff --git a/src/DownloadUtils.cpp b/src/DownloadUtils.cpp index 4afba38..53f8bb0 100644 --- a/src/DownloadUtils.cpp +++ b/src/DownloadUtils.cpp @@ -2,7 +2,10 @@ #include "../include/Program.hpp" #include "../include/Storage.hpp" #include "../external/cppcodec/base64_url.hpp" +#include +#include #include +#include #include #include @@ -54,7 +57,8 @@ namespace QuickMedia { args.push_back("-f"); for(const CommandArg &arg : additional_args) { args.push_back(arg.option.c_str()); - args.push_back(arg.value.c_str()); + if(!arg.value.empty()) + args.push_back(arg.value.c_str()); } if(use_browser_useragent) { args.push_back("-H"); @@ -137,6 +141,20 @@ namespace QuickMedia { return DownloadResult::OK; } + bool download_async_gui(const std::string &url, bool use_youtube_dl, bool no_video) { + char quickmedia_path[PATH_MAX]; + if(readlink("/proc/self/exe", quickmedia_path, sizeof(quickmedia_path)) == -1) + return false; + + std::vector args = { quickmedia_path, "download", "-u", url.c_str() }; + if(use_youtube_dl) + args.push_back("--youtube-dl"); + if(no_video) + args.push_back("--no-video"); + args.push_back(nullptr); + return exec_program_async(args.data(), nullptr) == 0; + } + // TODO: Add timeout DownloadResult download_to_json(const std::string &url, rapidjson::Document &result, const std::vector &additional_args, bool use_browser_useragent, bool fail_on_error) { sf::Clock timer; @@ -146,7 +164,8 @@ namespace QuickMedia { args.push_back("-f"); for(const CommandArg &arg : additional_args) { args.push_back(arg.option.c_str()); - args.push_back(arg.value.c_str()); + if(!arg.value.empty()) + args.push_back(arg.value.c_str()); } if(use_browser_useragent) { args.push_back("-H"); -- cgit v1.2.3