#pragma once #include "Page.hpp" namespace QuickMedia { class YoutubeSearchPage : public Page { public: YoutubeSearchPage(Program *program) : Page(program) {} const char* get_title() const override { return "All"; } 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; private: PluginResult search_get_continuation(const std::string &url, const std::string &continuation_token, BodyItems &result_items); private: std::string search_url; std::string continuation_token; int current_page = 0; }; class YoutubeVideoPage : public Page { public: YoutubeVideoPage(Program *program) : Page(program) {} const char* get_title() const override { return ""; } PluginResult submit(const std::string &title, const std::string &url, std::vector &result_tabs) override { (void)title; (void)url; (void)result_tabs; return PluginResult::ERR; } BodyItems get_related_media(const std::string &url) override; bool is_video_page() const override { return true; } }; }