diff options
| author | 2026-03-10 11:07:44 -0400 | |
|---|---|---|
| committer | 2026-03-10 11:07:44 -0400 | |
| commit | e9d9766d72740c7d7c9918b4839f3379f57cd6ef (patch) | |
| tree | 3694b83845354af116a77f66ed22931d2d11536e /src/main.rs | |
| parent | handle window resize events since draw is event driven now (diff) | |
merge consecutive join/part messages
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/main.rs b/src/main.rs index 9a5a69b..d788553 100644 --- a/src/main.rs +++ b/src/main.rs @@ -96,9 +96,9 @@ async fn run( let sender = client.sender(); let (tx, mut rx) = mpsc::unbounded_channel::<AppEvent>(); + // Spawn keyboard task — blocks on crossterm's async read, // zero CPU until a key is actually pressed - let kb_tx = tx.clone(); tokio::spawn(async move { loop { @@ -260,11 +260,11 @@ fn handle_irc_event(event: IrcEvent, app: &mut AppState) { app.push_system(&format!("Connected to {} as {}", server, nick)); } - IrcEvent::Joined { channel, nick } => { + IrcEvent::Joined { nick } => { if nick == app.nick { - app.push_system(&format!("You joined {}", channel)); + app.push_join_leave(&format!("+{}", nick)); } else { - app.push_system(&format!("{} joined {}", nick, channel)); + app.push_join_leave(&format!("+{}", nick)); app.members.push(nick); app.sort_members(); } @@ -292,33 +292,20 @@ fn handle_irc_event(event: IrcEvent, app: &mut AppState) { app.push_system(text.as_str()); } - IrcEvent::Parted { - channel, - nick, - reason, - } => { + IrcEvent::Parted { nick } => { app.members.retain(|m| { let bare = m.trim_start_matches(&['@', '+', '%'][..]); bare != nick }); - app.push_system(&format!( - "{} left {}{}", - nick, - channel, - reason.map(|r| format!(" ({})", r)).unwrap_or_default() - )); + app.push_join_leave(&format!("-{}", nick,)); } - IrcEvent::Quit { nick, reason } => { + IrcEvent::Quit { nick } => { app.members.retain(|m| { let bare = m.trim_start_matches(&['@', '+', '%'][..]); bare != nick }); - app.push_system(&format!( - "{} quit{}", - nick, - reason.map(|r| format!(" ({})", r)).unwrap_or_default() - )); + app.push_join_leave(&format!("-{}", nick,)); } IrcEvent::NickChanged { old_nick, new_nick } => { |
