protocols/matrix: Add some basic room metadata for friendly room names

This commit is contained in:
Alexander von Gluck IV 2023-12-22 12:26:54 -06:00
parent 53a5c5ed1a
commit 4964605432

View File

@ -282,6 +282,20 @@ room_sync(mtx::responses::Rooms rooms)
app->fRoomList.Add(BString(chat_id)); app->fRoomList.Add(BString(chat_id));
} }
// Grab the latest room metadata
BMessage metadataMsg(IM_MESSAGE);
metadataMsg.AddInt32("im_what", IM_ROOM_METADATA);
metadataMsg.AddString("chat_id", chat_id);
for (const auto &e : room.state.events) {
auto ev = std::get_if<mtx::events::StateEvent<mtx::events::state::Name>>(&e);
if (ev != nullptr) {
metadataMsg.AddString("chat_name", ev->content.name.c_str());
break;
}
}
((MatrixApp*)be_app)->SendMessage(metadataMsg);
// Grab the room timeline and add it
for (mtx::events::collections::TimelineEvents &ev : room.timeline.events) for (mtx::events::collections::TimelineEvents &ev : room.timeline.events)
if (auto event = std::get_if<mtx::events::RoomEvent<mtx::events::msg::Text>>(&ev); if (auto event = std::get_if<mtx::events::RoomEvent<mtx::events::msg::Text>>(&ev);
event != nullptr) event != nullptr)