diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index e2ee0ec..804d3d3 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -726,6 +726,10 @@ namespace QuickMedia { manga_generic_search_page->search_handler("https://mangatown.com/search?name=%s&page=%p", 1) .text_handler({{"//p[class='title']/a", "title", "href", "/manga/"}}) .thumbnail_handler({{"//a[class='manga_cover']/img", "src", nullptr}}) + .authors_handler({ + {"//div[class='detail_content']//a", "text", "href", "/author/"}, + {"//div[class='detail_content']//a", "text", "href", "/artist/"} + }) .list_chapters_handler("//ul[class='chapter_list']//a", "text", "href", "/manga/") .list_chapters_uploaded_time_handler("//ul[class='chapter_list']//span[class='time']", "text", nullptr) .list_page_images_pagination_handler( @@ -745,7 +749,7 @@ namespace QuickMedia { {"//div[id='book_list']//div[class='media']//img", "src", nullptr}, {"//div[id='single_book']//div[class='cover']//img", "src", nullptr} }) - .authors_handler("//div[id='single_book']//a[class='author']", "text", "href", "/author/") + .authors_handler({{"//div[id='single_book']//a[class='author']", "text", "href", "/author/"}}) .list_chapters_handler("//div[class='chapters']//div[class='chapter']//a", "text", "href", "/manga/") .list_chapters_uploaded_time_handler("//div[class='chapters']//div[class='update_time']", "text", nullptr) .list_page_images_custom_handler([](const std::string &html_source) { @@ -825,7 +829,7 @@ namespace QuickMedia { tabs.push_back(Tab{std::move(history_body), std::move(history_page), std::move(search_bar)}); } else if(strcmp(plugin_name, "manganelos") == 0) { auto search_body = create_body(); - auto search_page = std::make_unique<MangaGenericSearchPage>(this, plugin_name, nullptr); + auto search_page = std::make_unique<MangaGenericSearchPage>(this, plugin_name, "http://manganelos.com/"); add_manganelos_handlers(search_page.get()); tabs.push_back(Tab{std::move(search_body), std::move(search_page), create_search_bar("Search...", 400)}); @@ -863,7 +867,7 @@ namespace QuickMedia { tabs.push_back(Tab{std::move(history_body), std::move(history_page), std::move(search_bar)}); } else if(strcmp(plugin_name, "manga") == 0) { auto manganelo = std::make_unique<ManganeloSearchPage>(this); - auto manganelos = std::make_unique<MangaGenericSearchPage>(this, "manganelos", nullptr); + auto manganelos = std::make_unique<MangaGenericSearchPage>(this, "manganelos", "http://manganelos.com/"); add_manganelos_handlers(manganelos.get()); auto mangatown = std::make_unique<MangaGenericSearchPage>(this, "mangatown", "https://www.mangatown.com"); add_mangatown_handlers(mangatown.get()); @@ -2494,6 +2498,7 @@ namespace QuickMedia { std::vector<CommandArg> extra_args; const bool is_manganelo = (strcmp(images_page->get_service_name(), "manganelo") == 0); + const char *website_url = images_page->get_website_url(); if(is_manganelo) { extra_args = { CommandArg { "-H", "accept: image/jpeg,image/png,image/*,*/*;q=0.8" }, @@ -2504,6 +2509,13 @@ namespace QuickMedia { CommandArg { "-m", "30" }, CommandArg { "--connect-timeout", "30" } }; + } else if(website_url && website_url[0] != '\0') { + std::string website_url_str = website_url; + if(website_url_str.back() != '/') + website_url_str.push_back('/'); + extra_args = { + CommandArg { "-H", "referer: " + std::move(website_url_str) }, + }; } Path image_filepath_tmp(image_filepath.data + ".tmpz"); |