diff options
author | dec05eba <dec05eba@protonmail.com> | 2021-08-16 21:13:24 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-08-16 21:13:24 +0200 |
commit | 5cc735b22570f1667d62958e59ce4910b529f5af (patch) | |
tree | 75128a8926a48a612bc892d266032bd7afd9c2cf /src/plugins/MediaGeneric.cpp | |
parent | de4825e548b990493b372237cbef9a790bf114c4 (diff) |
Add MyAnimeList (wip)
Diffstat (limited to 'src/plugins/MediaGeneric.cpp')
-rw-r--r-- | src/plugins/MediaGeneric.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/MediaGeneric.cpp b/src/plugins/MediaGeneric.cpp index d536a09..bcb8dc3 100644 --- a/src/plugins/MediaGeneric.cpp +++ b/src/plugins/MediaGeneric.cpp @@ -37,7 +37,7 @@ namespace QuickMedia { } } - static PluginResult fetch_page_results(const std::string &url, const std::string &website_url, const std::vector<MediaTextQuery> &text_queries, const std::vector<MediaThumbnailQuery> &thumbnail_queries, MediaRelatedCustomHandler *custom_handler, BodyItems &result_items, bool cloudflare_bypass) { + static PluginResult fetch_page_results(const std::string &url, const std::string &website_url, const std::vector<MediaTextQuery> &text_queries, const std::vector<MediaThumbnailQuery> &thumbnail_queries, sf::Vector2i thumbnail_max_size, MediaRelatedCustomHandler *custom_handler, BodyItems &result_items, bool cloudflare_bypass) { std::vector<CommandArg> args; if(!website_url.empty()) args.push_back({ "-H", "referer: " + website_url }); @@ -55,6 +55,7 @@ namespace QuickMedia { auto body_item = BodyItem::create(media_related_item.title); body_item->url = std::move(media_related_item.url); body_item->thumbnail_url = std::move(media_related_item.thumbnail_url); + body_item->thumbnail_size = thumbnail_max_size; result_items.push_back(std::move(body_item)); } body_items_prepend_website_url(result_items, website_url); @@ -92,10 +93,11 @@ namespace QuickMedia { assert(thumbnail_query.html_query && thumbnail_query.field_name); if(thumbnail_query.html_query && thumbnail_query.field_name) { size_t index = 0; - result = quickmedia_html_find_nodes_xpath(&html_search, thumbnail_query.html_query, [&thumbnail_query, &result_items, &index](QuickMediaMatchNode *node) { + result = quickmedia_html_find_nodes_xpath(&html_search, thumbnail_query.html_query, [&thumbnail_query, &result_items, &index, thumbnail_max_size](QuickMediaMatchNode *node) { QuickMediaStringView field_value = html_attr_or_inner_text(node, thumbnail_query.field_name); if(index < result_items.size() && field_value.data && (!thumbnail_query.field_contains || string_view_contains(field_value, thumbnail_query.field_contains))) { result_items[index]->thumbnail_url.assign(field_value.data, field_value.size); + result_items[index]->thumbnail_size = thumbnail_max_size; ++index; } }); @@ -133,7 +135,7 @@ namespace QuickMedia { std::string url = search_query.search_template; string_replace_all(url, "%s", url_param_encode(str)); string_replace_all(url, "%p", std::to_string(search_query.page_start + page)); - return fetch_page_results(url, website_url, text_queries, thumbnail_queries, nullptr, result_items, cloudflare_bypass); + return fetch_page_results(url, website_url, text_queries, thumbnail_queries, thumbnail_max_size, nullptr, result_items, cloudflare_bypass); } PluginResult MediaGenericSearchPage::submit(const std::string&, const std::string &url, std::vector<Tab> &result_tabs) { @@ -142,7 +144,7 @@ namespace QuickMedia { } PluginResult MediaGenericSearchPage::get_related_media(const std::string &url, BodyItems &result_items) { - return fetch_page_results(url, website_url, related_media_text_queries, related_media_thumbnail_queries, &related_custom_handler, result_items, cloudflare_bypass); + return fetch_page_results(url, website_url, related_media_text_queries, related_media_thumbnail_queries, thumbnail_max_size, &related_custom_handler, result_items, cloudflare_bypass); } MediaGenericSearchPage& MediaGenericSearchPage::search_handler(const char *search_template, int page_start) { |