aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Page.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-10-11 21:35:37 +0200
committerdec05eba <dec05eba@protonmail.com>2020-10-13 13:13:01 +0200
commit77ed51898157d99112be7550471ec06e32344c9e (patch)
tree0645274d0f13b4fa6940d4054f74a070611a8ef0 /src/plugins/Page.cpp
parentda89ec98fb34757f0c46dc8cb2dd87ae78d317ce (diff)
Refactor plugin into seperate pages
TODO: Readd 4chan login page, manganelo creators page, autocomplete
Diffstat (limited to 'src/plugins/Page.cpp')
-rw-r--r--src/plugins/Page.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/plugins/Page.cpp b/src/plugins/Page.cpp
new file mode 100644
index 0000000..48efeff
--- /dev/null
+++ b/src/plugins/Page.cpp
@@ -0,0 +1,50 @@
+#include "../../plugins/Page.hpp"
+#include "../../include/QuickMedia.hpp"
+#include <json/reader.h>
+
+namespace QuickMedia {
+ BodyItems Page::get_related_media(const std::string &url) {
+ (void)url;
+ return {};
+ }
+
+ DownloadResult Page::download_json(Json::Value &result, const std::string &url, std::vector<CommandArg> additional_args, bool use_browser_useragent, std::string *err_msg) {
+ std::string server_response;
+ if(download_to_string(url, server_response, std::move(additional_args), is_tor_enabled(), use_browser_useragent, err_msg == nullptr) != DownloadResult::OK) {
+ if(err_msg)
+ *err_msg = server_response;
+ return DownloadResult::NET_ERR;
+ }
+
+ if(server_response.empty())
+ return DownloadResult::OK;
+
+ Json::CharReaderBuilder json_builder;
+ std::unique_ptr<Json::CharReader> json_reader(json_builder.newCharReader());
+ std::string json_errors;
+ if(!json_reader->parse(&server_response[0], &server_response[server_response.size()], &result, &json_errors)) {
+ fprintf(stderr, "download_json error: %s\n", json_errors.c_str());
+ if(err_msg)
+ *err_msg = std::move(json_errors);
+ return DownloadResult::ERR;
+ }
+
+ return DownloadResult::OK;
+ }
+
+ bool Page::is_tor_enabled() {
+ return program->is_tor_enabled();
+ }
+
+ std::unique_ptr<Body> Page::create_body() {
+ return program->create_body();
+ }
+
+ std::unique_ptr<SearchBar> Page::create_search_bar(const std::string &placeholder_text, int search_delay) {
+ return program->create_search_bar(placeholder_text, search_delay);
+ }
+
+ bool Page::load_manga_content_storage(const char *service_name, const std::string &manga_title, const std::string &manga_id) {
+ return program->load_manga_content_storage(service_name, manga_title, manga_id);
+ }
+} \ No newline at end of file