diff options
| author | Adam Soltys <[email protected]> | 2026-09-23 12:58:40 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-23 12:58:40 -0700 |
| commit | 2fbfe122ae0e7d59a6b1df08cccd091010bc94ec (patch) | |
| tree | 0e9eebdc4f89eba61ec078a3a4345f35d507ca07 /src/dm-inbox.js | |
| parent | f4c2f914e8349802feb3d4b5e10165437ef9750d (diff) | |
| download | coinosv3-2fbfe122ae0e7d59a6b1df08cccd091010bc94ec.tar.gz coinosv3-2fbfe122ae0e7d59a6b1df08cccd091010bc94ec.zip | |
Moderation: the whole mute list everywhere, follows' reports fold posts, strangers' spam hidden.
Mutes were only applied when the feed merged and painted. One predicate
(hiddenWhy / hiddenPk) now gates the feed, thread replies, notifications,
the who-reacted panel and counts, quote cards, rooms, the DM list and the
DM push. The list itself is read in full — people, words, hashtags, whole
threads, and the nip44 private half — and edited through one publish path
(mute thread and hidden words from the ⋯ menu and a Settings → Nostr card).
Reports (NIP-56) from the people you follow are read from their outbox
relays every half hour; a post or author they flagged is folded behind who
said so, with Show. Report… in the ⋯ menu publishes a kind 1984 and hides
the post for you.
Amethyst's stranger rules: a post of 60+ characters repeated under another
id is a duplicate and five duplicates hide the author for the session;
more than ten hashtags hides the post. Both switchable in Settings.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'src/dm-inbox.js')
| -rw-r--r-- | src/dm-inbox.js | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/dm-inbox.js b/src/dm-inbox.js index a91a8e0..b9eec3a 100644 --- a/src/dm-inbox.js +++ b/src/dm-inbox.js @@ -90,6 +90,7 @@ export async function classifyDm(wrap, inboxes) { author, mine: author === rec.pubkey, followed: (rec.follows || []).includes(author), + muted: (rec.muted || []).includes(author), // Someone you're already talking to is not a stranger, whether or not // you ever followed them. known: (rec.known || []).includes(author), @@ -110,6 +111,7 @@ export async function classifyDm(wrap, inboxes) { export function shouldNotifyDm(verdict) { if (!verdict) return true; if (verdict.mine) return false; + if (verdict.muted) return false; // muted in the app: no buzz either if (verdict.followed || verdict.known) return true; return !verdict.hasList; } |
