From 9799803529c57930a0e7f12e45cbcf2b2e4419eb Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 28 May 2020 02:08:40 +0200 Subject: Add support for mangadex --- plugins/Mangadex.hpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 plugins/Mangadex.hpp (limited to 'plugins/Mangadex.hpp') diff --git a/plugins/Mangadex.hpp b/plugins/Mangadex.hpp new file mode 100644 index 0000000..9d6d366 --- /dev/null +++ b/plugins/Mangadex.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include "Manga.hpp" +#include +#include + +namespace QuickMedia { + class Mangadex : public Manga { + public: + Mangadex() : Manga("mangadex") {} + SearchResult search(const std::string &url, BodyItems &result_items) override; + SuggestionResult update_search_suggestions(const std::string &text, BodyItems &result_items) override; + ImageResult get_number_of_images(const std::string &url, int &num_images) override; + bool search_suggestions_has_thumbnails() const override { return true; } + bool search_results_has_thumbnails() const override { return false; } + int get_search_delay() const override { return 300; } + Page get_page_after_search() const override { return Page::EPISODE_LIST; } + + ImageResult for_each_page_in_chapter(const std::string &chapter_url, PageCallback callback) override; + + bool extract_id_from_url(const std::string &url, std::string &manga_id) override; + private: + SearchResult search_page(const std::string &url, BodyItems &result_items, int page, bool *is_last_page); + // Caches url. If the same url is requested multiple times then the cache is used + ImageResult get_image_urls_for_chapter(const std::string &url); + private: + std::string last_chapter_url; + std::vector last_chapter_image_urls; + std::mutex image_urls_mutex; + }; +} \ No newline at end of file -- cgit v1.2.3