Skip to content

Commit

Permalink
Restore filtering out of RPL_TOPIC and RPL_TOPICWHOTIME messages …
Browse files Browse the repository at this point in the history
…when finding oldest/latest message in channel.
  • Loading branch information
andymandias committed May 9, 2024
1 parent 2d6f78c commit d16c548
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions data/src/history.rs
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ impl History {
.num_seconds()
< 0
&& message.id.is_some()
&& !matches!(message.target.source(), message::Source::Internal(_))
&& is_reference_message(message)
})
}
isupport::MessageReferenceType::Timestamp => {
Expand All @@ -423,7 +423,7 @@ impl History {
.signed_duration_since(join_server_time)
.num_seconds()
< 0
&& !matches!(message.target.source(), message::Source::Internal(_))
&& is_reference_message(message)
})
}
}
Expand All @@ -438,19 +438,26 @@ impl History {
match self {
History::Partial { messages, .. } | History::Full { messages, .. } => {
match message_reference_type {
isupport::MessageReferenceType::MessageId => messages.iter().find(|message| {
message.id.is_some()
&& !matches!(message.target.source(), message::Source::Internal(_))
}),
isupport::MessageReferenceType::Timestamp => messages.iter().find(|message| {
!matches!(message.target.source(), message::Source::Internal(_))
}),
isupport::MessageReferenceType::MessageId => messages
.iter()
.find(|message| message.id.is_some() && is_reference_message(message)),
isupport::MessageReferenceType::Timestamp => messages
.iter()
.find(|message| is_reference_message(message)),
}
}
}
}
}

fn is_reference_message(message: &Message) -> bool {
if let message::Source::Server(Some(source)) = message.target.source() {
!matches!(source.kind(), message::source::server::Kind::ReplyTopic)
} else {
!matches!(message.target.source(), message::Source::Internal(_))
}
}

#[derive(Debug)]
pub struct View<'a> {
pub total: usize,
Expand Down

0 comments on commit d16c548

Please sign in to comment.