dont consider presence status changes apart of presence spam
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
7f1bc490d6
commit
c896acb729
1 changed files with 19 additions and 3 deletions
|
@ -61,6 +61,22 @@ impl Data {
|
||||||
Some(ref presence) => presence.1.content.presence != *presence_state,
|
Some(ref presence) => presence.1.content.presence != *presence_state,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let status_msg_changed = match last_presence {
|
||||||
|
None => true,
|
||||||
|
Some(ref last_presence) => {
|
||||||
|
let old_msg = last_presence
|
||||||
|
.1
|
||||||
|
.content
|
||||||
|
.status_msg
|
||||||
|
.clone()
|
||||||
|
.unwrap_or_default();
|
||||||
|
|
||||||
|
let new_msg = status_msg.clone().unwrap_or_default();
|
||||||
|
|
||||||
|
new_msg != old_msg
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
let now = utils::millis_since_unix_epoch();
|
let now = utils::millis_since_unix_epoch();
|
||||||
let last_last_active_ts = match last_presence {
|
let last_last_active_ts = match last_presence {
|
||||||
None => 0,
|
None => 0,
|
||||||
|
@ -72,10 +88,10 @@ impl Data {
|
||||||
Some(last_active_ago) => now.saturating_sub(last_active_ago.into()),
|
Some(last_active_ago) => now.saturating_sub(last_active_ago.into()),
|
||||||
};
|
};
|
||||||
|
|
||||||
// tighten for state flicker?
|
// TODO: tighten for state flicker?
|
||||||
if !state_changed && last_active_ts <= last_last_active_ts {
|
if !status_msg_changed && !state_changed && last_active_ts < last_last_active_ts {
|
||||||
debug_warn!(
|
debug_warn!(
|
||||||
"presence spam {:?} last_active_ts:{:?} <= {:?}",
|
"presence spam {:?} last_active_ts:{:?} < {:?}",
|
||||||
user_id,
|
user_id,
|
||||||
last_active_ts,
|
last_active_ts,
|
||||||
last_last_active_ts
|
last_last_active_ts
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue