diff options
author | dec05eba <dec05eba@protonmail.com> | 2021-06-02 17:42:30 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-06-02 17:43:47 +0200 |
commit | cc3a65bde2e480b2b07b74eeef20d9081d7f730f (patch) | |
tree | 1bb5b85ab764592093e8042458ec9f4be0cf904a /src/plugins/Matrix.cpp | |
parent | 1b6812348e75de21c8f398a7dc944cc427064cc4 (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.cpp | 14 |
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"); |