From 4fe0a037c82332e84b16a6f0e2847a2f9a0bd5d7 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 18 Oct 2020 18:27:11 +0200 Subject: Matrix: add a proper URI parser instead of regex for opening links. Show related body item image when pressing enter (for showing replied to media) --- src/plugins/Plugin.cpp | 61 -------------------------------------------------- 1 file changed, 61 deletions(-) (limited to 'src/plugins/Plugin.cpp') diff --git a/src/plugins/Plugin.cpp b/src/plugins/Plugin.cpp index 3f76b4c..0b554ae 100644 --- a/src/plugins/Plugin.cpp +++ b/src/plugins/Plugin.cpp @@ -1,67 +1,6 @@ #include "../../plugins/Plugin.hpp" -#include "../../include/StringUtils.hpp" -#include -#include -#include namespace QuickMedia { - struct HtmlEscapeSequence { - char unescape_char; - std::string escape_sequence; - }; - - void html_escape_sequences(std::string &str) { - const std::array escape_sequences = { - HtmlEscapeSequence { '&', "&" }, // This should be first, to not accidentally replace a new sequence caused by replacing this - HtmlEscapeSequence { '"', """ }, - HtmlEscapeSequence { '\'', "'" }, - HtmlEscapeSequence { '<', "<" }, - HtmlEscapeSequence { '>', ">" }, - HtmlEscapeSequence { '\n', "
" } - }; - - for(const HtmlEscapeSequence &escape_sequence : escape_sequences) { - string_replace_all(str, escape_sequence.unescape_char, escape_sequence.escape_sequence); - } - } - - struct HtmlUnescapeSequence { - std::string escape_sequence; - std::string unescaped_str; - }; - - void html_unescape_sequences(std::string &str) { - const std::array unescape_sequences = { - HtmlUnescapeSequence { """, "\"" }, - HtmlUnescapeSequence { "'", "'" }, - HtmlUnescapeSequence { "'", "'" }, - HtmlUnescapeSequence { "<", "<" }, - HtmlUnescapeSequence { ">", ">" }, - HtmlUnescapeSequence { "&", "&" } // This should be last, to not accidentally replace a new sequence caused by replacing this - }; - - for(const HtmlUnescapeSequence &unescape_sequence : unescape_sequences) { - string_replace_all(str, unescape_sequence.escape_sequence, unescape_sequence.unescaped_str); - } - } - - std::string url_param_encode(const std::string ¶m) { - std::ostringstream result; - result.fill('0'); - result << std::hex; - - for(char c : param) { - if(isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') { - result << c; - } else { - result << std::uppercase; - result << "%" << std::setw(2) << (int)(unsigned char)(c); - } - } - - return result.str(); - } - SuggestionResult download_result_to_suggestion_result(DownloadResult download_result) { return (SuggestionResult)download_result; } PluginResult download_result_to_plugin_result(DownloadResult download_result) { return (PluginResult)download_result; } SearchResult download_result_to_search_result(DownloadResult download_result) { return (SearchResult)download_result; } -- cgit v1.2.3