From 4f8e4d11e51e2436b957157de86755f5f8879f61 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 18 Dec 2020 22:47:10 +0100 Subject: Matrix: get previous messages immediately even if sync in progress --- src/plugins/Matrix.cpp | 2 +- src/plugins/Pleroma.cpp | 4 +++- src/plugins/Pornhub.cpp | 20 +++++++++++--------- 3 files changed, 15 insertions(+), 11 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp index 003cf46..a07d050 100644 --- a/src/plugins/Matrix.cpp +++ b/src/plugins/Matrix.cpp @@ -2355,7 +2355,7 @@ namespace QuickMedia { PluginResult Matrix::get_previous_room_messages(RoomData *room_data, bool latest_messages, size_t &num_new_messages) { num_new_messages = 0; std::string from = room_data->get_prev_batch(); - if(from.empty()) + if(from.empty() || latest_messages) from = "END"; rapidjson::Document request_data(rapidjson::kObjectType); diff --git a/src/plugins/Pleroma.cpp b/src/plugins/Pleroma.cpp index 8479e39..20d71c7 100644 --- a/src/plugins/Pleroma.cpp +++ b/src/plugins/Pleroma.cpp @@ -5,11 +5,13 @@ extern "C" { #include } -namespace QuickMedia { +namespace { struct HtmlParseUserdata { std::string result; }; +} +namespace QuickMedia { static void html_parse_callback(HtmlParser *html_parser, HtmlParseType parse_type, void *userdata) { HtmlParseUserdata *parse_userdata = (HtmlParseUserdata*)userdata; if(parse_type == HTML_PARSE_TEXT) { diff --git a/src/plugins/Pornhub.cpp b/src/plugins/Pornhub.cpp index 1f0840e..b4e908a 100644 --- a/src/plugins/Pornhub.cpp +++ b/src/plugins/Pornhub.cpp @@ -6,11 +6,7 @@ extern "C" { } #include -namespace QuickMedia { - static bool begins_with(const char *str, const char *begin_with) { - return strncmp(str, begin_with, strlen(begin_with)) == 0; - } - +namespace { // TODO: Optimize by using HtmlStringView instead of std::string struct HtmlElement { std::string tag_name; @@ -19,6 +15,16 @@ namespace QuickMedia { HtmlElement *parent = nullptr; // ref }; + struct HtmlParseUserdata { + HtmlElement *current_html_element; + }; +} + +namespace QuickMedia { + static bool begins_with(const char *str, const char *begin_with) { + return strncmp(str, begin_with, strlen(begin_with)) == 0; + } + static void html_cleanup(HtmlElement *html_element_root) { for(HtmlElement *child_html_element : html_element_root->children) { html_cleanup(child_html_element); @@ -34,10 +40,6 @@ namespace QuickMedia { return default_value; } - struct HtmlParseUserdata { - HtmlElement *current_html_element; - }; - static void html_page_callback(HtmlParser *html_parser, HtmlParseType parse_type, void *userdata) { HtmlParseUserdata *parse_userdata = (HtmlParseUserdata*)userdata; if(parse_type == HTML_PARSE_TAG_START) { -- cgit v1.2.3