Handle matrix scheme
Link opening only works on Linux for now. See https://github.com/matrix-org/matrix-doc/pull/2312
This commit is contained in:
parent
cc9de7f3b0
commit
39f9b7d90a
7 changed files with 216 additions and 17 deletions
|
|
@ -2221,6 +2221,34 @@ Cache::getRoomVersion(lmdb::txn &txn, lmdb::dbi &statesdb)
|
|||
return QString("1");
|
||||
}
|
||||
|
||||
std::optional<mtx::events::state::CanonicalAlias>
|
||||
Cache::getRoomAliases(const std::string &roomid)
|
||||
{
|
||||
using namespace mtx::events;
|
||||
using namespace mtx::events::state;
|
||||
|
||||
auto txn = lmdb::txn::begin(env_, nullptr, MDB_RDONLY);
|
||||
auto statesdb = getStatesDb(txn, roomid);
|
||||
|
||||
lmdb::val event;
|
||||
bool res = lmdb::dbi_get(
|
||||
txn, statesdb, lmdb::val(to_string(mtx::events::EventType::RoomCanonicalAlias)), event);
|
||||
|
||||
if (res) {
|
||||
try {
|
||||
StateEvent<CanonicalAlias> msg =
|
||||
json::parse(std::string_view(event.data(), event.size()));
|
||||
|
||||
return msg.content;
|
||||
} catch (const json::exception &e) {
|
||||
nhlog::db()->warn("failed to parse m.room.canonical_alias event: {}",
|
||||
e.what());
|
||||
}
|
||||
}
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
QString
|
||||
Cache::getInviteRoomName(lmdb::txn &txn, lmdb::dbi &statesdb, lmdb::dbi &membersdb)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue