aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Matrix.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-06-02 17:42:30 +0200
committerdec05eba <dec05eba@protonmail.com>2021-06-02 17:43:47 +0200
commitcc3a65bde2e480b2b07b74eeef20d9081d7f730f (patch)
tree1bb5b85ab764592093e8042458ec9f4be0cf904a /src/plugins/Matrix.cpp
parent1b6812348e75de21c8f398a7dc944cc427064cc4 (diff)
Add modern theme
Join matrix room by their name instead of id if there is a name. This allows you to join rooms where the homeserver that created the room is no longer participating in the room.
Diffstat (limited to 'src/plugins/Matrix.cpp')
-rw-r--r--src/plugins/Matrix.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp
index f9cdab5..1e69bd7 100644
--- a/src/plugins/Matrix.cpp
+++ b/src/plugins/Matrix.cpp
@@ -728,7 +728,7 @@ namespace QuickMedia {
}
PluginResult MatrixRoomTagsPage::submit(const std::string&, const std::string &url, std::vector<Tab> &result_tabs) {
- auto body = create_body();
+ auto body = create_body(true);
Body *body_ptr = body.get();
TagData &tag_data = tag_body_items_by_name[url];
body->items = tag_data.room_body_items;
@@ -1008,7 +1008,7 @@ namespace QuickMedia {
if(strncmp(server_name.c_str(), "www.", 4) == 0)
server_name.erase(0, 4);
- result_tabs.push_back(Tab{create_body(), std::make_unique<MatrixServerRoomListPage>(program, matrix, server_name), create_search_bar("Search...", 350)});
+ result_tabs.push_back(Tab{create_body(), std::make_unique<MatrixServerRoomListPage>(program, matrix, server_name), create_search_bar("Search...", 400)});
return PluginResult::OK;
}
@@ -2174,6 +2174,11 @@ namespace QuickMedia {
message->related_event_type = RelatedEventType::REDACTION;
message->transaction_id = std::move(transaction_id);
+ if(sent_by_somebody_else) {
+ std::string sender_display_name = extract_first_line_remove_newline_elipses(room_data->get_user_display_name(user_sender), AUTHOR_MAX_LENGTH);
+ message->body += " by " + sender_display_name;
+ }
+
const rapidjson::Value &reason_json = GetMember(*content_json, "reason");
if(reason_json.IsString()) {
message->body += ", reason: ";
@@ -3871,7 +3876,7 @@ namespace QuickMedia {
};
std::string server_response;
- DownloadResult download_result = download_to_string(homeserver + "/_matrix/client/r0/join/" + room_id, server_response, std::move(additional_args), true);
+ DownloadResult download_result = download_to_string(homeserver + "/_matrix/client/r0/join/" + url_param_encode(room_id), server_response, std::move(additional_args), true);
if(download_result == DownloadResult::OK) {
std::lock_guard<std::mutex> invite_lock(invite_mutex);
auto invite_it = invites.find(room_id);
@@ -3909,7 +3914,7 @@ namespace QuickMedia {
};
std::string server_response;
- DownloadResult download_result = download_to_string(homeserver + "/_matrix/client/r0/rooms/" + room_id + "/leave", server_response, std::move(additional_args), true);
+ DownloadResult download_result = download_to_string(homeserver + "/_matrix/client/r0/rooms/" + url_param_encode(room_id) + "/leave", server_response, std::move(additional_args), true);
if(download_result == DownloadResult::OK) {
RoomData *room = get_room_by_id(room_id);
if(room) {
@@ -3991,6 +3996,7 @@ namespace QuickMedia {
if(!description.empty())
description += '\n';
description += canonical_alias_json.GetString();
+ room_body_item->url = canonical_alias_json.GetString();
}
const rapidjson::Value &num_joined_members_json = GetMember(chunk_item_json, "num_joined_members");