aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Matrix.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp
index 27c9390..df72fc9 100644
--- a/src/plugins/Matrix.cpp
+++ b/src/plugins/Matrix.cpp
@@ -1896,32 +1896,35 @@ namespace QuickMedia {
}
} else if(strcmp(membership_json.GetString(), "leave") == 0) {
if(sent_by_somebody_else) {
- bool unbanned = false;
+ bool known_action = 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;
+ known_action = true;
+ } else if(prev_membership_json.IsString() && strcmp(prev_membership_json.GetString(), "invite") == 0) {
+ body = sender_display_name + " withdrew " + user_display_name + "'s invitation";
+ known_action = true;
}
}
}
- if(!unbanned)
+ if(!known_action)
body = user_display_name + " was kicked from the room by " + sender_display_name;
} else {
- bool invite = false;
+ bool known_action = 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;
+ known_action = true;
}
}
}
- if(!invite)
+ if(!known_action)
body = user_display_name + " left the room";
}
if(!reason_str.empty())