aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Fourchan.cpp26
-rw-r--r--src/plugins/Mangadex.cpp13
-rw-r--r--src/plugins/Mangatown.cpp57
-rw-r--r--src/plugins/Matrix.cpp35
-rw-r--r--src/plugins/NyaaSi.cpp18
5 files changed, 8 insertions, 141 deletions
diff --git a/src/plugins/Fourchan.cpp b/src/plugins/Fourchan.cpp
index fa5e9e3..111aca1 100644
--- a/src/plugins/Fourchan.cpp
+++ b/src/plugins/Fourchan.cpp
@@ -73,17 +73,12 @@ namespace QuickMedia {
}
}
-#if 0
- std::string server_response;
- if(download_to_string(fourchan_url + "boards.json", server_response, {}, use_tor) != DownloadResult::OK)
- return PluginResult::NET_ERR;
-#else
std::string server_response;
if(file_get_content(resources_root + "boards.json", server_response) != 0) {
fprintf(stderr, "failed to read boards.json\n");
return PluginResult::ERR;
}
-#endif
+
Json::Value json_root;
Json::CharReaderBuilder json_builder;
std::unique_ptr<Json::CharReader> json_reader(json_builder.newCharReader());
@@ -552,21 +547,17 @@ namespace QuickMedia {
PostResult Fourchan::post_comment(const std::string &board, const std::string &thread, const std::string &captcha_id, const std::string &comment) {
std::string url = "https://sys.4chan.org/" + board + "/post";
- std::vector<FormData> form_data = {
- FormData{"resto", thread},
- FormData{"com", comment},
- FormData{"mode", "regist"},
- FormData{"g-recaptcha-response", captcha_id}
- };
std::vector<CommandArg> additional_args = {
CommandArg{"-H", "Referer: https://boards.4chan.org/"},
- CommandArg{"-H", "Content-Type: multipart/form-data; boundary=---------------------------119561554312148213571335532670"},
- CommandArg{"-H", "Origin: https://boards.4chan.org"}
+ CommandArg{"-H", "Origin: https://boards.4chan.org"},
+ CommandArg{"-F", "resto=" + thread},
+ CommandArg{"-F", "com=" + comment},
+ CommandArg{"-F", "mode=regist"}
};
if(pass_id.empty()) {
- form_data.push_back(FormData{"g-recaptcha-response", captcha_id});
+ additional_args.push_back(CommandArg{"-F", "g-recaptcha-response=" + captcha_id});
} else {
Path cookies_filepath;
if(get_cookies_filepath(cookies_filepath, name) != 0) {
@@ -578,11 +569,8 @@ namespace QuickMedia {
}
}
- std::vector<CommandArg> form_data_args = create_command_args_from_form_data(form_data);
- additional_args.insert(additional_args.end(), form_data_args.begin(), form_data_args.end());
-
std::string response;
- if(download_to_string(url, response, additional_args, use_tor) != DownloadResult::OK)
+ if(download_to_string(url, response, additional_args, use_tor, true) != DownloadResult::OK)
return PostResult::ERR;
if(response.find("successful") != std::string::npos)
diff --git a/src/plugins/Mangadex.cpp b/src/plugins/Mangadex.cpp
index e9487bc..bf493d3 100644
--- a/src/plugins/Mangadex.cpp
+++ b/src/plugins/Mangadex.cpp
@@ -220,19 +220,6 @@ namespace QuickMedia {
if(result != 0)
goto cleanup;
- // body_item_image_context.index = 0;
- // result = quickmedia_html_find_nodes_xpath(&html_search, "//div[class='pl-1']",
- // [](QuickMediaHtmlNode *node, void *userdata) {
- // auto *item_data = (BodyItemImageContext*)userdata;
- // const char *text = quickmedia_html_node_get_text(node);
- // if(text && item_data->index < item_data->body_items->size()) {
- // std::string desc = strip(text);
- // std::replace_if(desc.begin(), desc.end(), [](int c) { return c == '\n'; }, ' ');
- // (*item_data->body_items)[item_data->index]->set_description(std::move(desc));
- // item_data->index++;
- // }
- // }, &body_item_image_context);
-
cleanup:
quickmedia_html_search_deinit(&html_search);
return result == 0 ? SuggestionResult::OK : SuggestionResult::ERR;
diff --git a/src/plugins/Mangatown.cpp b/src/plugins/Mangatown.cpp
index 0964310..1f3bcae 100644
--- a/src/plugins/Mangatown.cpp
+++ b/src/plugins/Mangatown.cpp
@@ -46,62 +46,6 @@ namespace QuickMedia {
};
SuggestionResult Mangatown::update_search_suggestions(const std::string &text, BodyItems &result_items) {
-#if 0
- std::string url = "https://www.mangatown.com/ajax/search/?query=";
- url += url_param_encode(text);
-
- std::string server_response;
- if(download_to_string(url, server_response, {}, use_tor, true) != DownloadResult::OK)
- return SuggestionResult::NET_ERR;
-
- if(server_response.empty())
- return SuggestionResult::OK;
-
- Json::Value json_root;
- 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()], &json_root, &json_errors)) {
- fprintf(stderr, "Mangatown suggestions json error: %s\n", json_errors.c_str());
- return SuggestionResult::ERR;
- }
-
- if(!json_root.isObject())
- return SuggestionResult::OK;
-
- Json::Value &json_data = json_root["data"];
- Json::Value &json_suggestions = json_root["suggestions"];
- if(!json_data.isArray() || !json_suggestions.isArray())
- return SuggestionResult::OK;
-
- for(const Json::Value &child : json_suggestions) {
- if(!child.isString()) {
- result_items.push_back(BodyItem::create(""));
- continue;
- }
- result_items.push_back(BodyItem::create(child.asString()));
- }
-
- size_t index = 0;
- for(const Json::Value &child : json_data) {
- BodyItem *body_item = nullptr;
- if(index < result_items.size()) {
- body_item = result_items[index].get();
- } else {
- result_items.push_back(BodyItem::create(""));
- body_item = result_items.back().get();
- }
-
- ++index;
-
- if(!child.isString())
- continue;
-
- body_item->url = mangatown_url + child.asString();
- }
-
- return SuggestionResult::OK;
-#else
std::string url = "https://www.mangatown.com/search?name=";
url += url_param_encode(text);
@@ -146,7 +90,6 @@ namespace QuickMedia {
cleanup:
quickmedia_html_search_deinit(&html_search);
return SuggestionResult::OK;
-#endif
}
static bool is_number_with_zero_fill(const char *str) {
diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp
index 9ba1b6b..48d29eb 100644
--- a/src/plugins/Matrix.cpp
+++ b/src/plugins/Matrix.cpp
@@ -21,18 +21,6 @@ namespace QuickMedia {
}
- PluginResult Matrix::get_cached_sync(BodyItems &result_items) {
- /*
- Path sync_cache_path = get_cache_dir().join(name).join("sync.json");
- Json::Value root;
- if(!read_file_as_json(sync_cache_path, root))
- return PluginResult::ERR;
- return sync_response_to_body_items(root, result_items);
- */
- (void)result_items;
- return PluginResult::OK;
- }
-
PluginResult Matrix::sync(RoomSyncMessages &room_messages) {
std::vector<CommandArg> additional_args = {
{ "-H", "Authorization: Bearer " + access_token },
@@ -40,16 +28,6 @@ namespace QuickMedia {
};
std::string server_response;
- // timeout=30000, filter=0. First sync should be without filter and timeout=0, then all other sync should be with timeout=30000 and filter=0.
- // GET https://glowers.club/_matrix/client/r0/user/%40dec05eba%3Aglowers.club/filter/0 first to check if the filter is available
- // and if lazy load members is available and get limit to use with https://glowers.club/_matrix/client/r0/rooms/!oSXkiqBKooDcZsmiGO%3Aglowers.club/
- // when first launching the client. This call to /rooms/ should be called before /sync/, when accessing a room. But only the first time
- // (for the session).
-
- // Note: the first sync call with always exclude since= (next_batch) because we want to receive the latest messages in a room,
- // which is important if we for example login to matrix after having not been online for several days and there are many new messages.
- // We should be shown the latest messages first and if the user wants to see older messages then they should scroll up.
- // Note: missed mentions are received in /sync and they will remain in new /sync unless we send a read receipt that we have read them.
char url[512];
if(next_batch.empty())
@@ -84,19 +62,6 @@ namespace QuickMedia {
fprintf(stderr, "Matrix: missing next batch\n");
}
- // TODO: Only create the first time sync is called?
- /*
- Path sync_cache_path = get_cache_dir().join(name);
- if(create_directory_recursive(sync_cache_path) == 0) {
- sync_cache_path.join("sync.json");
- if(!save_json_to_file_atomic(sync_cache_path, json_root)) {
- fprintf(stderr, "Warning: failed to save sync response to %s\n", sync_cache_path.data.c_str());
- }
- } else {
- fprintf(stderr, "Warning: failed to create directory: %s\n", sync_cache_path.data.c_str());
- }
- */
-
return PluginResult::OK;
}
diff --git a/src/plugins/NyaaSi.cpp b/src/plugins/NyaaSi.cpp
index 186852b..8e13789 100644
--- a/src/plugins/NyaaSi.cpp
+++ b/src/plugins/NyaaSi.cpp
@@ -154,25 +154,9 @@ namespace QuickMedia {
size_t index;
};
- // Returns empty string on error
- // static std::string view_url_get_id(const std::string &url) {
- // size_t index = url.rfind('/');
- // if(index == std::string::npos)
- // return "";
- // return url.substr(index);
- // }
-
PluginResult NyaaSi::get_content_details(const std::string&, const std::string &url, BodyItems &result_items) {
size_t comments_start_index;
- // std::string id = view_url_get_id(url);
- // if(id.empty()) {
- // fprintf(stderr, "Error: nyaa.si: failed to extract id from url %s\n", url.c_str());
- // return PluginResult::ERR;
- // }
-
- // std::string torrent_url = "https://nyaa.si/download/" + id + ".torrent";
- // auto torrent_item = BodyItem::create("Download torrent");
- // torrent_item->url = "https://nyaa.si/download/" + id + ".torrent";
+
auto torrent_item = BodyItem::create("Download magnet");
std::string magnet_url;
std::string description;