aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Mangadex.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-04-16 09:37:53 +0200
committerdec05eba <dec05eba@protonmail.com>2021-04-16 18:50:03 +0200
commitba4e62d55156f9b94b569b56b6382bbcf94b7d86 (patch)
tree1896a38bd43a39a4affcc0e2b4c8d3529fa58a53 /src/plugins/Mangadex.cpp
parentab36fbffef977b99cc03d0b77ac37bdc1b5705dc (diff)
Convert mangatown and manganelos into a generic manga plugin
Revert for_each_page.. processing of manga instead of getting all pages. Mangatown requires you to navigate page by page, cant predict what a specific pages image url will be.
Diffstat (limited to 'src/plugins/Mangadex.cpp')
-rw-r--r--src/plugins/Mangadex.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/plugins/Mangadex.cpp b/src/plugins/Mangadex.cpp
index 44c9762..0d0c601 100644
--- a/src/plugins/Mangadex.cpp
+++ b/src/plugins/Mangadex.cpp
@@ -219,7 +219,28 @@ namespace QuickMedia {
return true;
}
- ImageResult MangadexImagesPage::get_page_image_urls(std::vector<std::string> &urls) {
+ ImageResult MangadexImagesPage::get_number_of_images(int &num_images) {
+ num_images = 0;
+ ImageResult image_result = get_image_urls_for_chapter(url);
+ if(image_result != ImageResult::OK) return image_result;
+ num_images = chapter_image_urls.size();
+ return ImageResult::OK;
+ }
+
+ ImageResult MangadexImagesPage::for_each_page_in_chapter(PageCallback callback) {
+ ImageResult image_result = get_image_urls_for_chapter(url);
+ if(image_result != ImageResult::OK) return image_result;
+ for(const std::string &url : chapter_image_urls) {
+ if(!callback(url))
+ break;
+ }
+ return ImageResult::OK;
+ }
+
+ ImageResult MangadexImagesPage::get_image_urls_for_chapter(const std::string &url) {
+ if(!chapter_image_urls.empty())
+ return ImageResult::OK;
+
std::string cookie_filepath;
if(!get_cookie_filepath(cookie_filepath))
return ImageResult::ERR;
@@ -261,11 +282,11 @@ namespace QuickMedia {
continue;
std::string image_url = server + chapter_hash_str + "/" + image_name.asCString();
- urls.push_back(std::move(image_url));
+ chapter_image_urls.push_back(std::move(image_url));
}
}
- if(urls.empty())
+ if(chapter_image_urls.empty())
return ImageResult::ERR;
return ImageResult::OK;