Skip to content

Commit e76cd42

Browse files
committed
twitch: send last 3 msg
1 parent 52518ea commit e76cd42

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

crates/server/src/health.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ pub type HealthConnections = Arc<RwLock<BTreeMap<String, HealthConnection>>>;
2020
pub type HealthTargets = Arc<RwLock<HashSet<String>>>;
2121
pub type HealthStats = Arc<RwLock<BTreeMap<String, EndpointSample>>>;
2222

23+
const MAX_CHAT_MESSAGES_PER_HEALTH_REPORT: usize = 3;
24+
2325
#[derive(Clone, Copy, Default)]
2426
pub struct EndpointSample {
2527
pub bytes: u64,
@@ -158,7 +160,11 @@ fn build_health_report(
158160
endpoints,
159161
chat: twitch_chat
160162
.map(|chat| {
161-
chat.recent_messages()
163+
let mut messages = chat.recent_messages();
164+
if messages.len() > MAX_CHAT_MESSAGES_PER_HEALTH_REPORT {
165+
messages.drain(0..messages.len() - MAX_CHAT_MESSAGES_PER_HEALTH_REPORT);
166+
}
167+
messages
162168
.into_iter()
163169
.map(|message| ChatMessage {
164170
id: message.id,

crates/twitch-remote/src/lib.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ impl TwitchChat {
4242
self.messages.read().iter().cloned().collect()
4343
}
4444

45+
pub fn messages_after(&self, last_id: u64, limit: usize) -> Vec<TwitchChatMessage> {
46+
self.messages
47+
.read()
48+
.iter()
49+
.filter(|message| message.id > last_id)
50+
.take(limit)
51+
.cloned()
52+
.collect()
53+
}
54+
4555
fn push(&self, user: String, text: String) -> Result<()> {
4656
let id = self.next_id.fetch_add(1, Ordering::Relaxed);
4757
let unix_ms = SystemTime::now()

0 commit comments

Comments
 (0)