diff options
Diffstat (limited to 'plugins/Plugin.hpp')
-rw-r--r-- | plugins/Plugin.hpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/plugins/Plugin.hpp b/plugins/Plugin.hpp index bc518a8..9d62356 100644 --- a/plugins/Plugin.hpp +++ b/plugins/Plugin.hpp @@ -21,18 +21,31 @@ namespace QuickMedia { NET_ERR }; + enum class SuggestionResult { + OK, + ERR, + NET_ERR + }; + enum class DownloadResult { OK, ERR, NET_ERR }; + struct CommandArg { + std::string option; + std::string value; + }; + class Plugin { public: virtual ~Plugin() = default; virtual SearchResult search(const std::string &text, std::vector<std::unique_ptr<BodyItem>> &result_items) = 0; + virtual SuggestionResult update_search_suggestions(const std::string &text, std::vector<std::unique_ptr<BodyItem>> &result_items); protected: - DownloadResult download_to_string(const std::string &url, std::string &result); + DownloadResult download_to_string(const std::string &url, std::string &result, const std::vector<CommandArg> &additional_args = {}); + std::string url_param_encode(const std::string ¶m) const; }; }
\ No newline at end of file |