chanlog: post log lines as a channel PRIVMSG from the server, not a NOTICE
This commit is contained in:
parent
b8e24e2071
commit
ddb6214b47
2 changed files with 4 additions and 2 deletions
|
|
@ -30,9 +30,11 @@ pub fn tee(s: &Server, cat: char, msg: &str) {
|
||||||
if !s.channels.contains_key(&key) {
|
if !s.channels.contains_key(&key) {
|
||||||
continue; // channel not created yet — nothing to log into
|
continue; // channel not created yet — nothing to log into
|
||||||
}
|
}
|
||||||
|
// Posted as a PRIVMSG from the server, so clients show it inline in the
|
||||||
|
// channel as a normal message rather than routing it to a notices view.
|
||||||
// to_channel builds the line once and shares it by Arc across members (and
|
// to_channel builds the line once and shares it by Arc across members (and
|
||||||
// adds the server-time tag per recipient) instead of cloning per member.
|
// adds the server-time tag per recipient) instead of cloning per member.
|
||||||
let line = format!(":{} NOTICE {chan} :{msg}", s.name);
|
let line = format!(":{} PRIVMSG {chan} :{msg}", s.name);
|
||||||
s.to_channel(&key, &line, None);
|
s.to_channel(&key, &line, None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1671,7 +1671,7 @@ mod tests {
|
||||||
s.snotice_c('c', "CONNMSG");
|
s.snotice_c('c', "CONNMSG");
|
||||||
let lines: Vec<String> = std::iter::from_fn(|| rx.try_recv().ok()).collect();
|
let lines: Vec<String> = std::iter::from_fn(|| rx.try_recv().ok()).collect();
|
||||||
let logged = |chan: &str, needle: &str| {
|
let logged = |chan: &str, needle: &str| {
|
||||||
lines.iter().any(|l| l.contains(&format!("NOTICE {chan} :")) && l.contains(needle))
|
lines.iter().any(|l| l.contains(&format!("PRIVMSG {chan} :")) && l.contains(needle))
|
||||||
};
|
};
|
||||||
assert!(logged("#xlog", "XLINEMSG"), "x-line notice goes to #xlog: {lines:?}");
|
assert!(logged("#xlog", "XLINEMSG"), "x-line notice goes to #xlog: {lines:?}");
|
||||||
assert!(logged("#all", "XLINEMSG"), "x-line notice goes to #all: {lines:?}");
|
assert!(logged("#all", "XLINEMSG"), "x-line notice goes to #all: {lines:?}");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue