#pragma once #include "Page.hpp" namespace QuickMedia { void get_nyaa_si_categories(BodyItems &result_items); void get_sukebei_categories(BodyItems &result_items); class NyaaSiCategoryPage : public Page { public: NyaaSiCategoryPage(Program *program, bool is_sukebei) : Page(program), is_sukebei(is_sukebei) {} const char* get_title() const override { return is_sukebei ? "Select sukebei category" : "Select nyaa.si category"; } PluginResult submit(const std::string &title, const std::string &url, std::vector &result_tabs) override; bool clear_search_after_submit() override { return true; } const bool is_sukebei; }; class NyaaSiSearchPage : public Page { public: NyaaSiSearchPage(Program *program, std::string category_name, std::string category_id, std::string domain) : Page(program), category_name(std::move(category_name)), category_id(std::move(category_id)), domain(std::move(domain)) {} const char* get_title() const override { return category_name.c_str(); } 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; const std::string category_name; const std::string category_id; const std::string domain; }; class NyaaSiTorrentPage : public Page { public: NyaaSiTorrentPage(Program *program) : Page(program) {} const char* get_title() const override { return "Torrent"; } PluginResult submit(const std::string &title, const std::string &url, std::vector &result_tabs) override; bool submit_is_async() override { return false; } }; }