diff --git a/Configuration.md b/Configuration.md index b64af15..4695121 100644 --- a/Configuration.md +++ b/Configuration.md @@ -70,11 +70,17 @@ An audit channel for the incident feed. Notable actions are announced there; pri [log] channel = "#services" -`notify_exclude` is an optional list of masks [OperServ NOTIFY](Services#operserv-network-operator-tools) never announces, so they cannot flood the feed. It uses the same grammar as a watch mask: a `#channel` mask mutes that channel, and any other mask (nick glob, `user@host`, extban) mutes a user. The classic user case is PyLink relay clients — their nicks carry a `/network` suffix — so `"*/*"` silences every relayed user; a channel entry like `"#staff"` keeps a broad `#*` watch out of that channel. Reloadable with `OperServ REHASH` (no restart). +`notify_exclude` is an optional list of masks [OperServ NOTIFY](Services#operserv-network-operator-tools) never announces, so they cannot flood the feed. It takes three kinds of entry: + +- `#channel` — mute that channel (keep a broad `#*` watch out of `#staff`). +- `server:` (alias `via:`) — mute everyone on a matching server. This is the handle on a relay whose users have **clean nicks**; the server name is what prints after `via` in a feed line. +- anything else — mute a user: a nick glob, `user@host`, or extban. `"*/*"` catches PyLink relays that suffix nicks with `/network`. + +Reloadable with `OperServ REHASH` (no restart). [log] channel = "#services" - notify_exclude = ["*/*", "#staff"] # relay clients, and never #staff + notify_exclude = ["*/*", "server:chatnova.relay", "#staff"] ## [expire] diff --git a/Services.md b/Services.md index 4f3e4da..bd46098 100644 --- a/Services.md +++ b/Services.md @@ -57,11 +57,11 @@ A deliberately broad mask like `#*` (every channel) or `*` (every user) is allow /msg OperServ REHASH -OperServ- Configuration reloaded from /etc/echo/config.toml. -Excluded masks are skipped by *every* watch, so genuine locals still surface while the relay noise is gone. The list uses the same grammar as a watch mask, so it excludes **users** (nick globs, `user@host`, extbans) **or channels**: a `#channel` mask mutes that channel. So "every join except #staff" is `#*` watched with `#staff` excluded: +Excluded masks are skipped by *every* watch, so genuine locals still surface while the relay noise is gone. An entry mutes a **user** (nick glob, `user@host`, extban), a **channel** (`#staff`), or a whole **server** (`server:`, alias `via:`). The server form is the one that catches a relay whose users have clean nicks — `via chatnova.relay` in the feed becomes `server:chatnova.relay` in the list: - notify_exclude = ["*/*", "#staff"] # relay clients, and never #staff + notify_exclude = ["*/*", "server:chatnova.relay", "#staff"] -See [Configuration → [log]](Configuration#log). +So "every join except #staff, and never the relays" is `#*` watched with those three exclusions. See [Configuration → [log]](Configuration#log). ## StatServ, statistics