#pragma once #include "Manga.hpp" #include #include #include "../include/AsyncTask.hpp" namespace QuickMedia { struct MangaPlugin { std::unique_ptr page; std::string title; std::string service_name; }; using MangaCombinedSearchThread = std::pair>; class MangaCombinedSearchPage : public Page { public: MangaCombinedSearchPage(Program *program, std::vector search_pages); const char* get_title() const override { return "Search"; } bool search_is_filter() override { return false; } SearchResult search(const std::string &str, BodyItems &result_items) override; PluginResult get_page(const std::string &str, int page, BodyItems &result_items) override; PluginResult submit(const std::string &title, const std::string &url, std::vector &result_tabs) override; sf::Vector2i get_thumbnail_max_size() override { return sf::Vector2i(101, 141); }; void cancel_operation() override; private: std::vector search_pages; std::vector search_threads; // TODO: Use async task pool }; }