Filters: words and posts a persona would rather not see
Mastodon's v2 filters replace the empty stubs: a filter's title, contexts, action (warn, hide, blur) and expiry, its keywords (whole words or not, taken as JSON objects, listed or numbered form fields, with id and _destroy on update) and its statuses, each with their own endpoints; the v1 API is the same filters seen keyword by keyword. Every status a persona reads carries the filters it matches in `filtered` (a boost as what it boosts), matched as Mastodon matches: warning, title, text, poll options and media descriptions. Clients apply context and action. Filters never federate, and go with a deleted persona. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
b710493701
commit
5b3e456e09
12 files changed
+759
-13
No files matched your search
+4
-1
@@ -66,6 +66,8 @@ Written 2026-10-01 from the original 2023 code, the decePubClient UI, a federati
|
||||
- [x] Lists: CRUD, members (followed accounts only, dropped when the follow ends), `timelines/list` with Mastodon's
|
||||
replies policies, exclusive lists kept out of home, and `accounts/search?following=true` to fill them. Lists are the
|
||||
persona's own and never federate.
|
||||
- [x] Filters: v2 (keywords, whole words, statuses, contexts, warn/hide/blur, expiry) and v1 over their keywords;
|
||||
every status carries the filters it matches in `filtered`, and clients apply context and action, as Mastodon's do.
|
||||
|
||||
## Intent
|
||||
|
||||
@@ -450,7 +452,8 @@ The first refactor commit is a pure move with namespaces only. Logic changes fol
|
||||
- **Timelines and the rest:** home, public, tag; notifications; markers; conversations; `/api/v2/search` with
|
||||
`resolve`.
|
||||
- **Lists:** CRUD, `:id/accounts`, `accounts/:id/lists`, `timelines/list/:id` (P9).
|
||||
- **Stubs:** `custom_emojis`, filters, announcements, trends, suggestions, `followed_tags`, preferences.
|
||||
- **Filters:** v2 with keywords and statuses, v1, `filtered` on statuses (P9).
|
||||
- **Stubs:** `custom_emojis`, announcements, trends, suggestions, `followed_tags`, preferences.
|
||||
- **Mapping:**
|
||||
- Avatar, ForeignAvatar and Group all map to Account (`group: true` for groups). `acct` uses a WebFinger-verified
|
||||
handle; `created_at` is truncated to the day; avatar and header always have a placeholder URL.
|
||||
|
||||
Reference in new issue
Block a user