A few suggestions that may or may not be satisfactory for you:
Using KES, enable General > Hide sidebar elements > Random threads, Random mags, Random posts
. The randomly populated sidebar is fundamentally flawed; I suggest disabling its content altogether.
Next, enable General > Filter advertisements
. This second feature is by no means foolproof, but will reduce a lot of noise, and is periodically updated on a rolling basis.
Using this approach, I am seeing none of those posts on /science. I updated the filters a bit today. The top post is a legitimate article from 2024-04-13 and is by HeartyBeast.
Now, I understand that this is seen as an unnecessary step (too fancy) for some. People want zero ads out of the box without anything extra. So I’m thinking about the next approach here.
Framing the problem:
The third point and fourth points are important here, since that’s currently intractable. You can’t reconcile zero additional setup with that.
But let’s suppose becoming moderator of a defunct magazine (point 4) were possible while point 3 remained unresolved. In other words, at least moderators can try to pick up the pieces. Something being underestimated here is how annoying it would be for the moderator to manually cull posts every single day. I think you would have instant turnover after a couple of weeks once the tedium sets in. Manual solution is not good. Clearly, automation is needed on the moderation side.
So assuming you could actually inherit a magazine, but with no guarantee of upstream development, what about restructuring the tool above so that it’s for moderators, instead of end-users? That’s pretty easy, and I could make it something the moderator clicks once and it’s done, auto-banning the posts. This is a pretty good method.
But you can’t inherit moderation right now, so that’s back to square one.
Realistically, that leaves these options at the moment:
Third approach is the path of least resistance and is best for most casual users. Second is for diehards who cannot move instances due to some personal or technical reason. First approach is the most annoying and eventually leads to the third approach after frustration sets in.
Pick your poison, I guess. I can’t think of any other prophylactic approach at the moment, maybe this comment triggers some idea.
If the script can automatically block any user whose post it suppresses, it would be awesome.
It does! I’ve reworded the OP to hopefully make that clearer. After using this approach for a few days, my blocklist (generated entirely programmatically) is ten pages long, and there is nary a bad post in sight. I’m expanding the filters on a daily basis.
I think the auto report function is severely needed; it’s happening everywhere.
The idea is that it takes the burden off of myriad (N) users having to manually do this themselves, and lets a single user (the KES custodian) prepare the filters, which then propagate out to any user of KES. Instead of 1,000 people manually blocking, one person builds the heuristics, and everyone benefits.
Preventing this issue doesn’t seem like a userscript issue…but I think the issue is that we need to get support top-down on this.
I understand, but the stated goal of KES is addressing issues that can’t, or won’t (due to some design conflict), be addressed, or which fall through the cracks. At the moment I’m seeing a lot of people voicing frustration, but due to the skeleton crew situation with administration of the site, it seems like screaming into the void. Not that there’s anything wrong with that, and hopefully it gets some traction. But my job with KES is just to provide fixes for the end-user, albeit of a third-party nature.
Of course, I’m not trying to suggest that a third-party prophylactic tool is a definitive solution to what is ultimately a separate problem, just trying to be pragmatic here and restore basic readability for end-users, whether the filtering is done at the source or after the fact.
Let’s be real here, we are talking about unmoderated magazines on an instance where the developer is AWOL and using a framework that is lacking many basic features. Even with moderators, manual moderation can be a big ask and is time-consuming for free volunteers, depending on the volume of posts or how rudimentary the moderation tools are.
I actually don’t read kbin magazines much, so I wasn’t aware of the extent of the problem until I started opening those magazines more closely, and felt that something is better than nothing.
On the magazines you mentioned, I do see a few anomalous patterns that I’ll start filtering. For the most part, with filtering enabled, they were almost entirely free of garbage, save for a few patterns I may have missed on the first few passes. /programming and /food I need to take a deeper look at. The /food thing is good intel, because the use of Amazon referral links in the threads is something that can be generalized to other situations beyond books. Posting referral links is definitively block-worthy.
I also noticed some stuff that by any other name would be considered a thinly-veiled ad, such as specific users only posting articles to web sites they own and operate. I’m not talking about bots as such, but actively promoting one’s own content–even when such content is on-topic for the magazine. I declined to filter this stuff yet, because it received a lot of upvotes and seemed to be received favorably, maybe because the readers felt it was at least germane to the topic at hand? I think this is probably true for /food as well, because the line between “content” and “promotion” is unclear here, since what is a food blog if not a product generating click revenue? It seems like the tolerance threshold for that sort of thing is higher in a magazine like /food versus some other magazine. Anyway, I digress. I’m not treating such stuff as in scope, just filtering what is blatantly noise.
You don’t like bufo toad venom? I like to start my mornings by sipping a little bufo toad venom while reading kbin. Buy bufo toad venom today.
In all seriousness…I don’t know if you saw my last thread about KES in this magazine, but I suggest giving it a try. I’ve extended the filter coverage based on your feedback, and those magazines should essentially be expunged of garbage for the time being.
As for the sidebar, I believe the implementation is fundamentally flawed because it loads content that, AFAIK, doesn’t respect your actual block settings. I suggest disabling the random threads element altogether in KES by navigating to General > Hide sidebar elements
.
Could you point me to some of the magazines where you feel this is particularly rampant right now?
How do you typically update your KES?
Addressing your issue, I have bumped the version number to 0.1.3 and made a change to the async method handling so that instances not available at the remote get added to the fail log correctly.
This doesn’t explicitly address the fact that some instances are unfederated, but it will make the log results clean.
As for the federation issue, what I’ve initially found is that a user on an instance has to visit the remote instance for the home instance to be aware of this remote instance, and a user (could be a different user) has to subscribe to that instance for the posts to start federating. What is unclear is how a user on an instance visits a remote instance from the home instance, as this is implementation-specific and could vary from instanc to instance.
No, it does not. Could be added, in theory.
I have made some modifications that should prompt you to click a button to copy the contents to the clipboard, rather than doing it automatically. This is done because Safari only permits modifying the clipboard if there was direct user interaction. Can you try again?
Looks like Safari’s clipboard API doesn’t function in the typical fashion, I will have to make some changes
Hmm, this is a good finding. Just on a cursory review, I had a look at the magazines list on fedia, and it does list magazines with zero threads, comments, posts, or subscribers on them (on other instances other than kbin.social). So maybe you’ve discovered a problem with kbin.social’s federation? I don’t know too much about this issue, so this is just my initial reaction before looking into it further.
I’ll try to reproduce this and look into tightening the error handling. A 404 error should imply that the magazine is not available at the remote. Are those magazines available at the target instance? Agree that those should at least be added to the log–perhaps should add a third category for “Unavailable.” Remember that it will also navigate you to the magazines list at the end for visual confirmation.
When you said community subscription, were you referring to something in particular, or just using this term generically to refer to magazines?
A bit late, but I saw your post and decided to make a tool for this. Hope this helps.
If using KES, check General > Add mail icon
to append an icon/label next to a username to directly message them. (If on the same intance as you)
I had just forgotten something simple (unload the threaded comments CSS):
Before:
removeDangling();
safeGM("removeStyle", "hide-defaults");
After:
removeDangling();
clearMores();
safeGM("removeStyle", "hide-defaults");
safeGM("removeStyle", "threaded-comments");
This is live on testing, but might take a sec to propagate due to GitHub’s caching feature.
You’re right, looks like I missed something that was obscured by custom styling.
And good catch on the mores appearing on teardown. This mod is turning out to be quite a beast. Thanks for testing.
I have resolved the aforementioned issues with a hotfix on the testing branch; please test when time permits. Executive summary:
more
s are being removed now for comments with overflow text. What I thought would be a quick fix turned into hours, and I thought I was losing my marbles over this one for a long time, since the tree clearly showed numerous duplicate more
s, but only one per comment was being shown at runtime of the script. At first, I did not seriously think that the mod was completing its runtime cycle prior to the duplicate mores being spawned, but indeed this is what was happening. For now, I have added a 20ms sleep before clearing the extra more
s, and this seems to suffice to let them propagate before the mod can continue with the cleanup phase. This seems satisfactory for now, short of attaching observers to wait for the duplicate more
s to appear.I believe that covers everything. It should be possible to switch the mod on and off at will now and see no adverse effect.
I have completed an audit of the mod and observed the following issues:
Does not properly unset classes and restore the page to an intact state when turned off: this was having the side effect of making the threaded lines look incorrect when toggling on/off in place. The mod should not leave dangling containers around after it is toggled off. The mod creates an outer container so that the “expando” lines flow all the way down through the child elements, but when turned off, these child elements need to be moved back out of the container to be adjacent to each other and the container removed. => Fixed locally.
Does not properly unset event listeners attached to nested comments. Same as above, tends to leave dangling listeners and does not unset itself cleanly. => In progress.
Because it physically manipulates the DOM and moves sub-comments into their own container down the tree, triggers an event (likely a bug) on Kbin’s side whereby any time the DOM is updated for that element, Kbin appends a more
element (text expansion button) if the text overflows a certain length, even if a more
element is already present. You can test this by creating a dummy div above or below a long comment and then moving the long comment before or after that div. Simply moving its position in the DOM will trigger the creation of another more
element inside. And because the mod puts each comment into its own container for the purposes of threading nested chains of comments, this will trigger the creation of as many more
s as there are indendation levels. So for a comment chain 5 replies deep, there will be 5 more
s. This is further exacerbated when toggling the mod on and off, since these more
s are not getting wiped and will just keep getting stacked up. Since this is also an upstream issue, our only alternative here is to walk through the tree and remove the extraneous more
elements after nesting occurs. This is similar to your CSS solution, but instead of masking them, physically deletes them, otherwise we will have a constantly growing tree of more
s every time nesting happens. I guess this should also be reported upstream as well. Kbin seems to expect no DOM manipulation to occur, which is reasonable, I suppose, but might be better if the callback doesn’t insert the more
element at all if it’s already present. => Easy fix on the Kbin side, in progress.
If your main goal is exporting your magazine subscriptions between accounts across instances, may I suggest trying EXIT tool. If you are looking for more complex export settings (friends/favorites?), unfortunately, only subscriptions are supported at this time.