diff options
Diffstat (limited to 'src/plugins/MangaGeneric.cpp')
-rw-r--r-- | src/plugins/MangaGeneric.cpp | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/src/plugins/MangaGeneric.cpp b/src/plugins/MangaGeneric.cpp index b3326fc..48533b8 100644 --- a/src/plugins/MangaGeneric.cpp +++ b/src/plugins/MangaGeneric.cpp @@ -49,6 +49,20 @@ namespace QuickMedia { return quickmedia_html_node_get_attribute_value(node, field_name); } + static void body_items_prepend_website_url(BodyItems &body_items, const std::string &website_url) { + for(auto &body_item : body_items) { + if(string_starts_with(body_item->url, "//")) + body_item->url = "https://" + body_item->url.substr(2); + else if(string_starts_with(body_item->url, "/")) + body_item->url = website_url + body_item->url.substr(1); + + if(string_starts_with(body_item->thumbnail_url, "//")) + body_item->thumbnail_url = "https://" + body_item->thumbnail_url.substr(2); + else if(string_starts_with(body_item->thumbnail_url, "/")) + body_item->thumbnail_url = website_url + body_item->thumbnail_url.substr(1); + } + } + static int html_append_search(QuickMediaHtmlSearch *html_search, const char *html_query, HtmlSearchUserdata *search_userdata) { return quickmedia_html_find_nodes_xpath(html_search, html_query, [](QuickMediaHtmlNode *node, void *userdata) { @@ -239,17 +253,7 @@ namespace QuickMedia { } } - for(auto &body_item : result_items) { - if(string_starts_with(body_item->url, "//")) - body_item->url = "https://" + body_item->url.substr(2); - else if(string_starts_with(body_item->url, "/")) - body_item->url = website_url + body_item->url.substr(1); - - if(string_starts_with(body_item->thumbnail_url, "//")) - body_item->thumbnail_url = "https://" + body_item->thumbnail_url.substr(2); - else if(string_starts_with(body_item->thumbnail_url, "/")) - body_item->thumbnail_url = website_url + body_item->thumbnail_url.substr(1); - } + body_items_prepend_website_url(result_items, website_url); cleanup: quickmedia_html_search_deinit(&html_search); @@ -333,17 +337,7 @@ namespace QuickMedia { } } - for(auto &body_item : chapters_items) { - if(string_starts_with(body_item->url, "//")) - body_item->url = "https://" + body_item->url.substr(2); - else if(string_starts_with(body_item->url, "/")) - body_item->url = website_url + body_item->url.substr(1); - - if(string_starts_with(body_item->thumbnail_url, "//")) - body_item->thumbnail_url = "https://" + body_item->thumbnail_url.substr(2); - else if(string_starts_with(body_item->thumbnail_url, "/")) - body_item->thumbnail_url = website_url + body_item->thumbnail_url.substr(1); - } + body_items_prepend_website_url(chapters_items, website_url); for(auto &it : creators) { if(string_starts_with(it.second, "//")) |