aboutsummaryrefslogtreecommitdiff
path: root/plugins/ImageBoard.hpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-10-11 21:35:37 +0200
committerdec05eba <dec05eba@protonmail.com>2020-10-13 13:13:01 +0200
commit77ed51898157d99112be7550471ec06e32344c9e (patch)
tree0645274d0f13b4fa6940d4054f74a070611a8ef0 /plugins/ImageBoard.hpp
parentda89ec98fb34757f0c46dc8cb2dd87ae78d317ce (diff)
Refactor plugin into seperate pages
TODO: Readd 4chan login page, manganelo creators page, autocomplete
Diffstat (limited to 'plugins/ImageBoard.hpp')
-rw-r--r--plugins/ImageBoard.hpp28
1 files changed, 19 insertions, 9 deletions
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<std::string> 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<Tab> &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<std::string> cached_media_urls;
};
} \ No newline at end of file