fix: don't do expensive operation on local /send

next
Timo Kösters 2021-04-14 12:55:14 +02:00
parent c1953efa6b
commit 001d8dc257
No known key found for this signature in database
GPG Key ID: 24DA7517711A2BA4
2 changed files with 4 additions and 5 deletions

View File

@ -218,7 +218,7 @@ pub fn get_actions<'a>(
let ctx = PushConditionRoomCtx { let ctx = PushConditionRoomCtx {
room_id: pdu.room_id.clone(), room_id: pdu.room_id.clone(),
member_count: (db.rooms.room_members(&pdu.room_id).count() as u32).into(), member_count: 10_u32.into(), // TODO: get member count efficiently
user_display_name: db user_display_name: db
.users .users
.displayname(&user)? .displayname(&user)?

View File

@ -674,6 +674,7 @@ impl Rooms {
.iter() .iter()
.filter_map(|r| r.ok()) .filter_map(|r| r.ok())
.filter(|user_id| self.is_joined(&user_id, &pdu.room_id).unwrap_or(false)) .filter(|user_id| self.is_joined(&user_id, &pdu.room_id).unwrap_or(false))
.filter(|user_id| !db.users.is_deactivated(user_id).unwrap_or(false))
{ {
// Don't notify the user of their own events // Don't notify the user of their own events
if user == pdu.sender { if user == pdu.sender {
@ -706,15 +707,13 @@ impl Rooms {
userroom_id.extend_from_slice(pdu.room_id.as_bytes()); userroom_id.extend_from_slice(pdu.room_id.as_bytes());
if notify { if notify {
self self.userroomid_notificationcount
.userroomid_notificationcount
.update_and_fetch(&userroom_id, utils::increment)? .update_and_fetch(&userroom_id, utils::increment)?
.expect("utils::increment will always put in a value"); .expect("utils::increment will always put in a value");
} }
if highlight { if highlight {
self self.userroomid_highlightcount
.userroomid_highlightcount
.update_and_fetch(&userroom_id, utils::increment)? .update_and_fetch(&userroom_id, utils::increment)?
.expect("utils::increment will always put in a value"); .expect("utils::increment will always put in a value");
} }