Ciao @BeBe, quale soluzione alternativa hai trovato?
Ho un utente per il quale va bene vedere i suoi post in altri argomenti, ma vorrei che i suoi argomenti creati fossero nascosti.
I suoi argomenti ruotano sempre attorno agli stessi (noiosi) argomenti. ![]()
Esiste un modo CSS per nascondere i post dell’utente all’interno degli argomenti:
Ma sfortunatamente gli elenchi degli argomenti non includono l’ID dell’utente creatore, quindi non c’è modo di nascondere gli argomenti creati dall’utente.
Prendiamo il nome utente abc ID 123.
Ho dato un’occhiata al codice sorgente per vedere se c’era un modo per farlo con il CSS dell’utente.
Il tag dell’argomento è attualmente così:
<tr> data-topic-id="123" id="ember123" class="topic-list-item … ember-view">
All’interno, certo, potrei interrogare la cella dei poster, ma richiederebbe JavaScript poiché voglio nascondere il suo genitore:
tr > td.posters > a:first-child[data-user-card='abc']
Ora, se avessimo l’attributo aggiuntivo data-op-user-id="123", direttamente sul tr dell’argomento:
<tr> data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">
Potremmo usare un semplice CSS utente per filtrare in modo efficace per ID utente per i quali preferiamo non vedere i loro argomenti:
tr.topic-list-item[data-op-user-id='123']
Sarebbe possibile avere un nuovo data-op-user-id sui tag tr.topic-list-item delle voci degli argomenti?
Funziona solo in modalità desktop, vedi sotto.
Per chiunque fosse interessato, ho scritto un piccolo userscript per community.metabrainz.org.
Ho prima provato con MutationObserver, come consigliato, ma è diventato eccessivamente complesso, quindi ho usato solo un semplice setInterval.
Non l’ho reso dinamico e con impostazioni utente, ecc.
Ogni aggiornamento cancellerà la tua blacklist e il tuo @include (vedi più avanti).
Poiché spero che un nuovo attributo data-op-user-id venga aggiunto agli argomenti in Discourse originale, non avrò più bisogno di questo userscript.
Puoi adattarlo a qualsiasi altro forum Discourse modificando il suo @include con il tuo URL (l’unica riga specifica).
Non funziona nella visualizzazione mobile poiché (purtroppo), per progettazione, Discourse non mostra l’avatar dell’OP nella visualizzazione mobile.
Quindi sarebbe comunque molto conveniente per lo spam avere quel suggerito tr.topic-list-item[data-op-user-id='123'].
Ora gli aggiornamenti non reimposteranno la mia blacklist, ho aggiunto un editor di blacklist di base e la lista viene salvata localmente.
Ma mi piacerebbe davvero molto che Discourse includesse un ID utente OP in ogni riga <tr> data-op-user-id="123" degli argomenti, in modo che un semplicissimo foglio di stile utente sarebbe sufficiente per nascondere gli argomenti degli utenti ignorati:
tr.topic-list-item[data-op-user-id='123'] { display: none; }
O mi piacerebbe ancora di più che Discourse nascondesse semplicemente da solo gli argomenti degli utenti ignorati.
Non capisco lo scopo degli utenti ignorati se i loro argomenti inquinano la mia navigazione.