I wrote hacky tampermonkey script to fix Lemmy instance links. Any advice?

https://sh.itjust.works/post/5563197

I wrote hacky tampermonkey script to fix Lemmy instance links. Any advice? - sh.itjust.works

Read this post [https://sh.itjust.works/post/5556588] and wrote a simple Tampermonkey script as a solution. // ==UserScript== // @name Fix community link // @version 0.1 // @description try to take over the world! // @match https://sh.itjust.works/post/* // ==/UserScript== (function() { 'use strict'; const postLinks = document.getElementById("postContent").querySelectorAll("a:not(.community-link)") // get every links that is NOT a community link const fixLink = (aTags) => { for (let aTag of aTags) { const isCommunityLink = aTag.pathname.startsWith("/c/"); aTag.href = isCommunityLink?aTag.pathname + "@" + aTag.host:aTag.href }; } fixLink(postLinks) const comments = document.getElementsByClassName("comment-content"); for (let comment of comments) { let commentLinks = comment.querySelectorAll("a:not(.community-link)"); fixLink(commentLinks) } })(); Any advice? I especially hate the fact that the way to check if it’s a link for lemmy community is through pathname but I thought there’s can’t be a real solution besides listing all the lemmy instances or actually making a request somehow. Any inputs are welcome!

I just posted this on the post you linked, but yeah I am hardcoding a list of instances into my solution. Here’s my comment, copied:

I’m using the Firefox addon Redirector, and one of my rules there redirects community links using regex. I keep adding to the pattern as I encounter more instances. Currently it’s:

Pattern: https://(lemdro\.id|lemmy\.run|beehaw\.org|lemmy\.ml|sh\.itjust\.works|lemmy\.fmhy\.ml|lemmy\.dbzer0\.com|lemmy\.world|sopuli\.xyz|lemmy\.kde\.social|lemmygrad\.ml|mander\.xyz|lemmy\.ca|zerobytes\.monster)/c/(.*) Redirect to: https://programming.dev/c/$2@$1
Redirector – Get this Extension for 🦊 Firefox (en-US)

Download Redirector for Firefox. Automatically redirects to user-defined urls on certain pages

feddit.de is missing.