Skip to content

Commit 0dfcf98

Browse files
committed
fix(trogon-source-discord): skip dedup for member/ban lifecycle events
These events lack unique IDs and can legitimately repeat for the same guild+user pair (e.g. leave and rejoin within the dedup window). Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
1 parent 70c9c5f commit 0dfcf98

File tree

1 file changed

+3
-21
lines changed
  • rsworkspace/crates/trogon-source-discord/src

1 file changed

+3
-21
lines changed

rsworkspace/crates/trogon-source-discord/src/gateway.rs

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -271,14 +271,6 @@ fn dedup_key(event_name: &str, id: impl std::fmt::Display) -> Option<String> {
271271
Some(format!("{event_name}:{id}"))
272272
}
273273

274-
#[cfg(not(coverage))]
275-
fn dedup_key2(
276-
event_name: &str,
277-
a: impl std::fmt::Display,
278-
b: impl std::fmt::Display,
279-
) -> Option<String> {
280-
Some(format!("{event_name}:{a}:{b}"))
281-
}
282274

283275
#[cfg(not(coverage))]
284276
fn extract_dedup_id(event_name: &str, event: &Event) -> Option<String> {
@@ -294,10 +286,9 @@ fn extract_dedup_id(event_name: &str, event: &Event) -> Option<String> {
294286
Event::GuildDelete(e) => dedup_key(event_name, e.id),
295287
Event::RoleCreate(e) => dedup_key(event_name, e.role.id),
296288
Event::RoleDelete(e) => dedup_key(event_name, e.role_id),
297-
Event::MemberAdd(e) => dedup_key2(event_name, e.guild_id, e.user.id),
298-
Event::MemberRemove(e) => dedup_key2(event_name, e.guild_id, e.user.id),
299-
Event::BanAdd(e) => dedup_key2(event_name, e.guild_id, e.user.id),
300-
Event::BanRemove(e) => dedup_key2(event_name, e.guild_id, e.user.id),
289+
Event::MemberAdd(_) | Event::MemberRemove(_) | Event::BanAdd(_) | Event::BanRemove(_) => {
290+
None
291+
}
301292
Event::InteractionCreate(e) => dedup_key(event_name, e.id),
302293
Event::InviteCreate(e) => dedup_key(event_name, &e.code),
303294
Event::InviteDelete(e) => dedup_key(event_name, &e.code),
@@ -525,15 +516,6 @@ mod tests {
525516
);
526517
}
527518

528-
#[cfg(not(coverage))]
529-
#[test]
530-
fn dedup_key2_formats_correctly() {
531-
assert_eq!(
532-
dedup_key2("guild_member_add", 111, 222),
533-
Some("guild_member_add:111:222".to_string())
534-
);
535-
}
536-
537519
#[cfg(not(coverage))]
538520
#[test]
539521
fn event_name_returns_none_for_gateway_control() {

0 commit comments

Comments
 (0)