123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #pragma once
- #include "Page.hpp"
- namespace QuickMedia {
- struct PostResult {
- enum class Type {
- OK,
- TRY_AGAIN,
- INVALID_CAPTCHA,
- BANNED,
- //FILE_TOO_LARGE,
- NO_SUCH_FILE,
- FILE_TYPE_NOT_ALLOWED,
- UPLOAD_FAILED,
- ERR
- };
- PostResult(Type type) : type(type) {}
- Type type;
- std::string err_msg;
- };
- class ImageBoardBodyItemData : public BodyItemExtra {
- public:
- std::vector<size_t> replies_to;
- std::vector<size_t> replies;
- int64_t post_id = 0;
- };
- // All fields are optional
- struct ImageBoardCaptchaChallenge {
- std::string challenge_id;
- std::string img_data;
- std::string bg_data;
- int ttl = 0;
- };
- class ImageBoardThreadPage : public LazyFetchPage {
- public:
- ImageBoardThreadPage(Program *program, std::string board_id, std::string thread_id, std::string post_id) :
- LazyFetchPage(program), board_id(std::move(board_id)), thread_id(std::move(thread_id)), post_id(std::move(post_id)) {}
- const char* get_title() const override { return ""; }
- PageTypez get_type() const override { return PageTypez::IMAGE_BOARD_THREAD; }
- void copy_to_clipboard(const BodyItem *body_item) override;
- // If |filepath| is empty then no file is uploaded
- virtual PostResult post_comment(const std::string &captcha_id, const std::string &captcha_solution, const std::string &comment, const std::string &filepath = "") = 0;
- virtual const std::string& get_pass_id();
- virtual PluginResult request_captcha_challenge(ImageBoardCaptchaChallenge &challenge_response) = 0;
- const std::string board_id;
- const std::string thread_id;
- const std::string post_id;
- };
- class ImageBoardVideoPage : public VideoPage {
- public:
- ImageBoardVideoPage(Program *program) : VideoPage(program, "") {}
- const char* get_title() const override { return ""; }
- bool autoplay_next_item() override { return true; }
- };
- }
|