aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Mangadex.cpp
diff options
context:
space:
mode:
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;