From d5da6e47e14831b865d418faa32f32df4de5af42 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 19 Nov 2020 17:03:49 +0100 Subject: Matrix: fix too long path in event cache, bug when not using error handler.. --- include/DownloadUtils.hpp | 3 ++- include/Path.hpp | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/DownloadUtils.hpp b/include/DownloadUtils.hpp index 3eff519..6d96cd6 100644 --- a/include/DownloadUtils.hpp +++ b/include/DownloadUtils.hpp @@ -1,5 +1,6 @@ #pragma once +#include "Path.hpp" #include #include #include @@ -21,7 +22,7 @@ namespace QuickMedia { using DownloadErrorHandler = std::function; DownloadResult download_to_string(const std::string &url, std::string &result, const std::vector &additional_args, bool use_tor, bool use_browser_useragent = false, bool fail_on_error = true); - DownloadResult download_to_string_cache(const std::string &url, std::string &result, const std::vector &additional_args, bool use_tor, bool use_browser_useragent = false, DownloadErrorHandler error_handler = nullptr); + DownloadResult download_to_string_cache(const std::string &url, std::string &result, const std::vector &additional_args, bool use_tor, bool use_browser_useragent = false, DownloadErrorHandler error_handler = nullptr, Path cache_path = ""); DownloadResult download_to_file(const std::string &url, const std::string &destination_filepath, const std::vector &additional_args, bool use_tor, bool use_browser_useragent = false); DownloadResult download_to_json(const std::string &url, rapidjson::Document &result, const std::vector &additional_args, bool use_tor, bool use_browser_useragent = false, bool fail_on_error = true); } \ No newline at end of file diff --git a/include/Path.hpp b/include/Path.hpp index 46c8dee..19c8eb9 100644 --- a/include/Path.hpp +++ b/include/Path.hpp @@ -37,6 +37,13 @@ namespace QuickMedia { return ""; } + Path parent() { + size_t slash_index = data.rfind('/'); + if(slash_index != std::string::npos || slash_index == 0) + return Path(data.substr(0, slash_index)); + return Path("/"); + } + std::string data; }; } \ No newline at end of file -- cgit v1.2.3