aboutsummaryrefslogtreecommitdiff
path: root/plugins/Manga.hpp
blob: 18ed2f991e50573e95a7238896ed157f57696459 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once

#include "Plugin.hpp"
#include <functional>
#include <mutex>

namespace QuickMedia {
    // Return false to stop iteration
    using PageCallback = std::function<bool(const std::string &url)>;

    class Manga : public Plugin {
    public:
        Manga(const std::string &plugin_name) : Plugin(plugin_name) {}
        bool is_manga() override { return true; }
        virtual ImageResult get_number_of_images(const std::string &url, int &num_images) = 0;
        virtual ImageResult for_each_page_in_chapter(const std::string &chapter_url, PageCallback callback) = 0;
        virtual bool extract_id_from_url(const std::string &url, std::string &manga_id) = 0;
    };
}