Filters: made on /filters, applied by each card where it is

The persona's filters (PrivaPub's /api/v2/filters): made, given words and
whole-word rules, contexts, an action and an expiry on /filters (linked from
Settings), and deleted; posts filtered one by one can be taken out. Every
status says which filters it matches; each page tells its cards where they
are (home and lists, notifications, public feeds, the thread around the
opened post, profiles), and a card leaves its post out (hide), folds it
behind the filter's title with a way to show it anyway (warn), or blurs its
media (blur). The e2e test folds and then hides a post of the persona's own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-05 03:10:27 +02:00
1 parent e2491de16e
commit 9a752d9288
18 files changed
+1182 -240

No files matched your search

+117
View File
@@ -989,4 +989,121 @@
<data name="{0} removed from {1}." xml:space="preserve">
<value>{0} tolto da {1}.</value>
</data>
<data name="Filters" xml:space="preserve">
<value>Filtri</value>
</data>
<data name="A new filter&#x27;s title" xml:space="preserve">
<value>Il titolo di un nuovo filtro</value>
</data>
<data name="Make a filter" xml:space="preserve">
<value>Crea un filtro</value>
</data>
<data name="This persona has no filter yet." xml:space="preserve">
<value>Questa persona non ha ancora filtri.</value>
</data>
<data name="Expired" xml:space="preserve">
<value>Scaduto</value>
</data>
<data name="until {0}" xml:space="preserve">
<value>fino al {0}</value>
</data>
<data name="{0} words, {1} posts" xml:space="preserve">
<value>{0} parole, {1} post</value>
</data>
<data name="Where" xml:space="preserve">
<value>Dove</value>
</data>
<data name="How" xml:space="preserve">
<value>Come</value>
</data>
<data name="Expires" xml:space="preserve">
<value>Scadenza</value>
</data>
<data name="Words" xml:space="preserve">
<value>Parole</value>
</data>
<data name="Whole word" xml:space="preserve">
<value>Parola intera</value>
</data>
<data name="A word or a phrase" xml:space="preserve">
<value>Una parola o una frase</value>
</data>
<data name="Posts filtered one by one" xml:space="preserve">
<value>Post filtrati uno per uno</value>
</data>
<data name="Keep its expiry" xml:space="preserve">
<value>Mantieni la scadenza</value>
</data>
<data name="Never expires" xml:space="preserve">
<value>Non scade mai</value>
</data>
<data name="Expires in 30 minutes" xml:space="preserve">
<value>Scade tra 30 minuti</value>
</data>
<data name="Expires in 1 hour" xml:space="preserve">
<value>Scade tra 1 ora</value>
</data>
<data name="Expires in 12 hours" xml:space="preserve">
<value>Scade tra 12 ore</value>
</data>
<data name="Expires in 1 day" xml:space="preserve">
<value>Scade tra 1 giorno</value>
</data>
<data name="Expires in 1 week" xml:space="preserve">
<value>Scade tra 1 settimana</value>
</data>
<data name="Home and lists" xml:space="preserve">
<value>Home e liste</value>
</data>
<data name="Public feeds" xml:space="preserve">
<value>Feed pubblici</value>
</data>
<data name="Threads" xml:space="preserve">
<value>Discussioni</value>
</data>
<data name="Profiles" xml:space="preserve">
<value>Profili</value>
</data>
<data name="Hide" xml:space="preserve">
<value>Nascondi</value>
</data>
<data name="Blur" xml:space="preserve">
<value>Sfoca</value>
</data>
<data name="Warn" xml:space="preserve">
<value>Avvisa</value>
</data>
<data name="Leave the post out" xml:space="preserve">
<value>Togli il post</value>
</data>
<data name="Blur its media" xml:space="preserve">
<value>Sfoca i suoi media</value>
</data>
<data name="Fold the post behind the filter&#x27;s title" xml:space="preserve">
<value>Piega il post dietro il titolo del filtro</value>
</data>
<data name="Filter {0} made." xml:space="preserve">
<value>Filtro {0} creato.</value>
</data>
<data name="Filter {0} saved." xml:space="preserve">
<value>Filtro {0} salvato.</value>
</data>
<data name="Filter {0} deleted." xml:space="preserve">
<value>Filtro {0} eliminato.</value>
</data>
<data name="Filtered: {0}" xml:space="preserve">
<value>Filtrato: {0}</value>
</data>
<data name="Show anyway" xml:space="preserve">
<value>Mostra comunque</value>
</data>
<data name="Filtered media, show" xml:space="preserve">
<value>Media filtrati, mostra</value>
</data>
<data name="Words, phrases and posts this persona would rather not see, and where." xml:space="preserve">
<value>Parole, frasi e post che questa persona preferisce non vedere, e dove.</value>
</data>
<data name="Manage filters" xml:space="preserve">
<value>Gestisci i filtri</value>
</data>
</root>
+117
View File
@@ -989,4 +989,121 @@
<data name="{0} removed from {1}." xml:space="preserve">
<value>{0} removed from {1}.</value>
</data>
<data name="Filters" xml:space="preserve">
<value>Filters</value>
</data>
<data name="A new filter&#x27;s title" xml:space="preserve">
<value>A new filter's title</value>
</data>
<data name="Make a filter" xml:space="preserve">
<value>Make a filter</value>
</data>
<data name="This persona has no filter yet." xml:space="preserve">
<value>This persona has no filter yet.</value>
</data>
<data name="Expired" xml:space="preserve">
<value>Expired</value>
</data>
<data name="until {0}" xml:space="preserve">
<value>until {0}</value>
</data>
<data name="{0} words, {1} posts" xml:space="preserve">
<value>{0} words, {1} posts</value>
</data>
<data name="Where" xml:space="preserve">
<value>Where</value>
</data>
<data name="How" xml:space="preserve">
<value>How</value>
</data>
<data name="Expires" xml:space="preserve">
<value>Expires</value>
</data>
<data name="Words" xml:space="preserve">
<value>Words</value>
</data>
<data name="Whole word" xml:space="preserve">
<value>Whole word</value>
</data>
<data name="A word or a phrase" xml:space="preserve">
<value>A word or a phrase</value>
</data>
<data name="Posts filtered one by one" xml:space="preserve">
<value>Posts filtered one by one</value>
</data>
<data name="Keep its expiry" xml:space="preserve">
<value>Keep its expiry</value>
</data>
<data name="Never expires" xml:space="preserve">
<value>Never expires</value>
</data>
<data name="Expires in 30 minutes" xml:space="preserve">
<value>Expires in 30 minutes</value>
</data>
<data name="Expires in 1 hour" xml:space="preserve">
<value>Expires in 1 hour</value>
</data>
<data name="Expires in 12 hours" xml:space="preserve">
<value>Expires in 12 hours</value>
</data>
<data name="Expires in 1 day" xml:space="preserve">
<value>Expires in 1 day</value>
</data>
<data name="Expires in 1 week" xml:space="preserve">
<value>Expires in 1 week</value>
</data>
<data name="Home and lists" xml:space="preserve">
<value>Home and lists</value>
</data>
<data name="Public feeds" xml:space="preserve">
<value>Public feeds</value>
</data>
<data name="Threads" xml:space="preserve">
<value>Threads</value>
</data>
<data name="Profiles" xml:space="preserve">
<value>Profiles</value>
</data>
<data name="Hide" xml:space="preserve">
<value>Hide</value>
</data>
<data name="Blur" xml:space="preserve">
<value>Blur</value>
</data>
<data name="Warn" xml:space="preserve">
<value>Warn</value>
</data>
<data name="Leave the post out" xml:space="preserve">
<value>Leave the post out</value>
</data>
<data name="Blur its media" xml:space="preserve">
<value>Blur its media</value>
</data>
<data name="Fold the post behind the filter&#x27;s title" xml:space="preserve">
<value>Fold the post behind the filter's title</value>
</data>
<data name="Filter {0} made." xml:space="preserve">
<value>Filter {0} made.</value>
</data>
<data name="Filter {0} saved." xml:space="preserve">
<value>Filter {0} saved.</value>
</data>
<data name="Filter {0} deleted." xml:space="preserve">
<value>Filter {0} deleted.</value>
</data>
<data name="Filtered: {0}" xml:space="preserve">
<value>Filtered: {0}</value>
</data>
<data name="Show anyway" xml:space="preserve">
<value>Show anyway</value>
</data>
<data name="Filtered media, show" xml:space="preserve">
<value>Filtered media, show</value>
</data>
<data name="Words, phrases and posts this persona would rather not see, and where." xml:space="preserve">
<value>Words, phrases and posts this persona would rather not see, and where.</value>
</data>
<data name="Manage filters" xml:space="preserve">
<value>Manage filters</value>
</data>
</root>