retroactively fix bad data in roomuserid_joined
, remove pointless prefix scans
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
0524e6ed52
commit
ccf9f95cc9
3 changed files with 117 additions and 20 deletions
|
@ -130,14 +130,7 @@ impl Data for KeyValueDatabase {
|
|||
self.userroomid_leftstate.remove(&userroom_id)?;
|
||||
self.roomuserid_leftcount.remove(&roomuser_id)?;
|
||||
|
||||
if self.roomuserid_joined.scan_prefix(roomid.clone()).count() == 0
|
||||
&& self
|
||||
.roomuserid_invitecount
|
||||
.scan_prefix(roomid.clone())
|
||||
.count() == 0
|
||||
{
|
||||
self.roomid_inviteviaservers.remove(&roomid)?;
|
||||
}
|
||||
self.roomid_inviteviaservers.remove(&roomid)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -206,14 +199,7 @@ impl Data for KeyValueDatabase {
|
|||
self.userroomid_invitestate.remove(&userroom_id)?;
|
||||
self.roomuserid_invitecount.remove(&roomuser_id)?;
|
||||
|
||||
if self.roomuserid_joined.scan_prefix(roomid.clone()).count() == 0
|
||||
&& self
|
||||
.roomuserid_invitecount
|
||||
.scan_prefix(roomid.clone())
|
||||
.count() == 0
|
||||
{
|
||||
self.roomid_inviteviaservers.remove(&roomid)?;
|
||||
}
|
||||
self.roomid_inviteviaservers.remove(&roomid)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -654,8 +640,7 @@ impl Data for KeyValueDatabase {
|
|||
|
||||
#[tracing::instrument(skip(self))]
|
||||
fn servers_invite_via(&self, room_id: &RoomId) -> Result<Option<Vec<OwnedServerName>>> {
|
||||
let mut key = room_id.as_bytes().to_vec();
|
||||
key.push(0xFF);
|
||||
let key = room_id.as_bytes().to_vec();
|
||||
|
||||
self.roomid_inviteviaservers
|
||||
.get(&key)?
|
||||
|
|
|
@ -217,6 +217,22 @@ impl Service {
|
|||
self.db.appservice_in_room(room_id, appservice)
|
||||
}
|
||||
|
||||
/// Direct DB function to directly mark a user as left. It is not
|
||||
/// recommended to use this directly. You most likely should use
|
||||
/// `update_membership` instead
|
||||
#[tracing::instrument(skip(self))]
|
||||
pub fn mark_as_left(&self, user_id: &UserId, room_id: &RoomId) -> Result<()> {
|
||||
self.db.mark_as_left(user_id, room_id)
|
||||
}
|
||||
|
||||
/// Direct DB function to directly mark a user as joined. It is not
|
||||
/// recommended to use this directly. You most likely should use
|
||||
/// `update_membership` instead
|
||||
#[tracing::instrument(skip(self))]
|
||||
pub fn mark_as_joined(&self, user_id: &UserId, room_id: &RoomId) -> Result<()> {
|
||||
self.db.mark_as_joined(user_id, room_id)
|
||||
}
|
||||
|
||||
/// Makes a user forget a room.
|
||||
#[tracing::instrument(skip(self))]
|
||||
pub fn forget(&self, room_id: &RoomId, user_id: &UserId) -> Result<()> { self.db.forget(room_id, user_id) }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue