Hi @BeBe, what workaround did you find?
I have a user for which it’s okay to see their posts in others’s topics but I would like to have their created topics hidden.
Their topics always revolve around the same (boring) subjects.
There is a CSS way to hide user posts inside topics:
But unfortunately topic lists don’t include user id of creator, so there is no such way of hiding topics created by user.
Let’s take user name abc
id 123
.
I had a look at the source code to see if there is a way to do with user CSS.
The topic tag is currently like:
<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">
Inside it, sure I could query the posters cell, but it would need JavaScript as I want to hide its parent:
tr > td.posters > a:first-child[data-user-card='abc']
Now, if we would have the additional attribute data-op-user-id="123"
, directly on the topic tr
:
<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">
We could use simple user CSS do some great filtering on user ID for which we prefer not seeing their topics:
tr.topic-list-item[data-op-user-id='123']
Would it be possible to have such a new data-op-user-id
on topic entry tr.topic-list-item
tags?
Only works in desktop mode, see bottom.
For whoever might be interested, I wrote a small userscript for community.metabrainz.org.
I first tried with MutationObserver
, as advised, but it became overly complex, so I just use a dumb setInterval
.
I did not make it dynamic and with user settings etc.
Each update will erase your blacklist and your @include
(see later).
Because I hope a new data-op-user-id
attribute will be added to topics in genuine Discourse, so I won’t need this userscript any more.
You can adapt it to any other Discourse forum by changing its @include
to your URL (the only specific line).
Does not work in mobile view as (unfortunately), by design, Discourse does not show OP avatar in mobile view.
So it would still be very convenient spam-wise to have that suggested tr.topic-list-item[data-op-user-id='123']
.
Now updates won’t reset my blacklist, I have added a basic blacklist editor and the list is saved locally.
But I would really love love love that Discourse would include an OP user ID in every topic <TR data-op-user-id="123">
rows, so a super simple user stylesheet would be enough to hide ignored user topics:
tr.topic-list-item[data-op-user-id='123'] { display: none; }
Or I would even more love love love love that Discourse would simply hide ignored user topics itself.
I don’t understand the purpose of ignored users if their topics polute my browsing.