From 77ed51898157d99112be7550471ec06e32344c9e Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 11 Oct 2020 21:35:37 +0200 Subject: Refactor plugin into seperate pages TODO: Readd 4chan login page, manganelo creators page, autocomplete --- plugins/ImageBoard.hpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'plugins/ImageBoard.hpp') diff --git a/plugins/ImageBoard.hpp b/plugins/ImageBoard.hpp index abab22e..6f2a276 100644 --- a/plugins/ImageBoard.hpp +++ b/plugins/ImageBoard.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Plugin.hpp" +#include "Page.hpp" namespace QuickMedia { enum class PostResult { @@ -10,16 +10,26 @@ namespace QuickMedia { ERR }; - class ImageBoard : public Plugin { + class ImageBoardThreadPage : public Page { public: - ImageBoard(const std::string &name) : Plugin(name) {} - virtual ~ImageBoard() = default; + ImageBoardThreadPage(Program *program, std::string board_id, std::string thread_id, std::vector cached_media_urls) : Page(program), board_id(std::move(board_id)), thread_id(std::move(thread_id)), cached_media_urls(std::move(cached_media_urls)) {} + 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; + } - bool is_image_board() override { return true; } - virtual const std::string& get_pass_id() const = 0; + bool is_image_board_thread_page() const override { return true; } - virtual PluginResult get_threads(const std::string &url, BodyItems &result_items) = 0; - virtual PluginResult get_thread_comments(const std::string &list_url, const std::string &url, BodyItems &result_items) = 0; - virtual PostResult post_comment(const std::string &board, const std::string &thread, const std::string &captcha_id, const std::string &comment) = 0; + virtual BodyItems get_related_media(const std::string &url) override; + virtual PluginResult login(const std::string &token, const std::string &pin, std::string &response_msg); + virtual PostResult post_comment(const std::string &captcha_id, const std::string &comment) = 0; + virtual const std::string& get_pass_id(); + + const std::string board_id; + const std::string thread_id; + const std::vector cached_media_urls; }; } \ No newline at end of file -- cgit v1.2.3