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?
shazbot
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?
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:
- The mod fully restores the DOM tree to its original state when toggled off. It is now possible to toggle the mod on and off on the same page without reloading, and changes will behave as expected.
- For reasons of security, the mod no longer allows clicking the post headers or post body as a means of collapsing/expanding comments. This was attaching unnecessary listeners to elements on the page, with no way of clearing them when toggled off (besides hard refreshing). Now the only approved way of expanding/collapsing is to use the +/- icon or colored bars.
- The mod erroneously modified the CSS of profile pictures to give them rounded borders, which was unspecified by its intended behavior and documented nowhere in the description. Now they conform to the standard square format.
- The superfluous
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 duplicatemore
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 extramore
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 duplicatemore
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 amore
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 anothermore
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 manymore
s as there are indendation levels. So for a comment chain 5 replies deep, there will be 5more
s. This is further exacerbated when toggling the mod on and off, since thesemore
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 extraneousmore
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 ofmore
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 themore
element at all if it's already present. => Easy fix on the Kbin side, in progress.
I understand the root cause now, will ping you again once this feature is working as expected.
No, it does not. Could be added, in theory.