From 0910f4ce6883981c232811ee4d71da4a93e20845 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 9 Jan 2021 06:31:55 +0100 Subject: Matrix: add reject invite and unban messages --- src/plugins/Matrix.cpp | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp index a07d050..c87d604 100644 --- a/src/plugins/Matrix.cpp +++ b/src/plugins/Matrix.cpp @@ -1892,10 +1892,35 @@ namespace QuickMedia { body = user_display_name + " joined the room"; } } else if(strcmp(membership_json.GetString(), "leave") == 0) { - if(sent_by_somebody_else) - body = user_display_name + " was kicked from the room by " + sender_display_name; - else - body = user_display_name + " left the room"; + if(sent_by_somebody_else) { + bool unbanned = false; + if(unsigned_json.IsObject()) { + const rapidjson::Value &prev_content_json = GetMember(unsigned_json, "prev_content"); + if(prev_content_json.IsObject()) { + const rapidjson::Value &prev_membership_json = GetMember(prev_content_json, "membership"); + if(prev_membership_json.IsString() && strcmp(prev_membership_json.GetString(), "ban") == 0) { + body = user_display_name + " was unbanned from the room by " + sender_display_name; + unbanned = true; + } + } + } + if(!unbanned) + body = user_display_name + " was kicked from the room by " + sender_display_name; + } else { + bool invite = false; + if(unsigned_json.IsObject()) { + const rapidjson::Value &prev_content_json = GetMember(unsigned_json, "prev_content"); + if(prev_content_json.IsObject()) { + const rapidjson::Value &prev_membership_json = GetMember(prev_content_json, "membership"); + if(prev_membership_json.IsString() && strcmp(prev_membership_json.GetString(), "invite") == 0) { + body = user_display_name + " rejected the invitation"; + invite = true; + } + } + } + if(!invite) + body = user_display_name + " left the room"; + } if(!reason_str.empty()) body += ", reason: " + reason_str; } else if(strcmp(membership_json.GetString(), "invite") == 0) { -- cgit v1.2.3