From da89ec98fb34757f0c46dc8cb2dd87ae78d317ce Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 10 Oct 2020 10:43:50 +0200 Subject: Refactor: move download->json parsing to a one function --- src/plugins/Youtube.cpp | 52 ++++++++----------------------------------------- 1 file changed, 8 insertions(+), 44 deletions(-) (limited to 'src/plugins/Youtube.cpp') diff --git a/src/plugins/Youtube.cpp b/src/plugins/Youtube.cpp index 364f394..7e1fc63 100644 --- a/src/plugins/Youtube.cpp +++ b/src/plugins/Youtube.cpp @@ -106,18 +106,9 @@ namespace QuickMedia { //std::vector cookies = get_cookies(); //additional_args.insert(additional_args.end(), cookies.begin(), cookies.end()); - std::string website_data; - if(download_to_string(url + "?pbj=1", website_data, additional_args, use_tor, true) != DownloadResult::OK) - return PluginResult::NET_ERR; - Json::Value json_root; - Json::CharReaderBuilder json_builder; - std::unique_ptr json_reader(json_builder.newCharReader()); - std::string json_errors; - if(!json_reader->parse(&website_data[0], &website_data[website_data.size()], &json_root, &json_errors)) { - fprintf(stderr, "Youtube get front page error: %s\n", json_errors.c_str()); - return PluginResult::ERR; - } + DownloadResult result = download_json(json_root, url + "?pbj=1", std::move(additional_args), true); + if(result != DownloadResult::OK) return download_result_to_plugin_result(result); if(!json_root.isArray()) return PluginResult::ERR; @@ -300,18 +291,9 @@ namespace QuickMedia { //std::vector cookies = get_cookies(); //additional_args.insert(additional_args.end(), cookies.begin(), cookies.end()); - std::string website_data; - if(download_to_string(url + "&pbj=1", website_data, additional_args, use_tor, true) != DownloadResult::OK) - return SuggestionResult::NET_ERR; - Json::Value json_root; - Json::CharReaderBuilder json_builder; - std::unique_ptr json_reader(json_builder.newCharReader()); - std::string json_errors; - if(!json_reader->parse(&website_data[0], &website_data[website_data.size()], &json_root, &json_errors)) { - fprintf(stderr, "Youtube search json error: %s\n", json_errors.c_str()); - return SuggestionResult::ERR; - } + DownloadResult result = download_json(json_root, url + "?pbj=1", std::move(additional_args), true); + if(result != DownloadResult::OK) return download_result_to_suggestion_result(result); if(!json_root.isArray()) return SuggestionResult::ERR; @@ -380,18 +362,9 @@ namespace QuickMedia { //std::vector cookies = get_cookies(); //additional_args.insert(additional_args.end(), cookies.begin(), cookies.end()); - std::string website_data; - if(download_to_string(next_url, website_data, additional_args, use_tor, true) != DownloadResult::OK) - return; - Json::Value json_root; - Json::CharReaderBuilder json_builder; - std::unique_ptr json_reader(json_builder.newCharReader()); - std::string json_errors; - if(!json_reader->parse(&website_data[0], &website_data[website_data.size()], &json_root, &json_errors)) { - fprintf(stderr, "Youtube search continuation json error: %s\n", json_errors.c_str()); - return; - } + DownloadResult result = download_json(json_root, next_url, std::move(additional_args), true); + if(result != DownloadResult::OK) return; if(!json_root.isArray()) return; @@ -521,18 +494,9 @@ namespace QuickMedia { //std::vector cookies = get_cookies(); //additional_args.insert(additional_args.end(), cookies.begin(), cookies.end()); - std::string website_data; - if(download_to_string(modified_url + "&pbj=1", website_data, additional_args, use_tor, true) != DownloadResult::OK) - return result_items; - Json::Value json_root; - Json::CharReaderBuilder json_builder; - std::unique_ptr json_reader(json_builder.newCharReader()); - std::string json_errors; - if(!json_reader->parse(&website_data[0], &website_data[website_data.size()], &json_root, &json_errors)) { - fprintf(stderr, "Youtube related media error: %s\n", json_errors.c_str()); - return result_items; - } + DownloadResult result = download_json(json_root, modified_url + "&pbj=1", std::move(additional_args), true); + if(result != DownloadResult::OK) return result_items; if(!json_root.isArray()) return result_items; -- cgit v1.2.3