The issue: You find a link to a neat lemmy community on some random instance. In order to subscribe, you have go to your instance, search for the community, find it, open it, subscribe…blah!

The fix: Use a simple browser bookmark to go to your home instance and open the federated community in one click.

This works through modifying the URL of the page your on and puts the host name (e.g. lemmy.ml) after an “@” symbol after the community and then changing the host name to your own, hard-coded one.

How to steps:

  1. Create a bookmark in your browser and then “Edit” it.

  2. Change the URL to this text (modify the “lemmy.world” bit with whatever your home instance is):

    For lemmy.world users: javascript:(function(){location.href="https://lemmy.world/c/"+location.href.match(/(?:.*)\/c\/(.*(?=\/)|.*$)/i)[1]+"@"+location.host.toString();})();

    For lemmy.ml users: javascript:(function(){location.href="https://lemmy.ml/c/"+location.href.match(/(?:.*)\/c\/(.*(?=\/)|.*$)/i)[1]+"@"+location.host.toString();})();

  3. Change the name of the bookmark to whatever you want. Mine is named “lemmy.world”.

  1. You’re all set!

Now, from any federated community main feed page, click on the bookmark and you’ll magically be taken to the same community on your local instance. Magic!


Disclaimers: The community must be federated with your instance. You can only do this from a URL that has the community in url (e.g. not from a post or anything).

  • ctr1@fl0w.cc
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 years ago

    Thanks! This works pretty well for now, until a more integrated solution comes along. I made a slight modification, since the original script only works when you’re at the community level. This version redirects community URLs as before, but also redirects any non-matching URLs to the search form of your home instance. It seems to work pretty well for posts. Comments and user profiles have some issues- searching comments works as long as the user is commenting on their own instance, and searching profiles works as long as the user is registered with that instance.

    javascript:(() => { const inst = "lemmy.world"; const m = location.href.match(/(?:.*)\/c\/(.*(?=\/)|.*$)/i); if (m) { location.href = `https://${inst}/c/` + m[1] + "@" + location.host.toString(); } else if (location.host !== inst) { const q = new URLSearchParams(); q.append('q', location.href); location.href = `https://${inst}/search?${q.toString()}`; }})()
    
    • ewe@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years ago

      Exactly, hopefully these things are just stopgaps until better link handling is fully implemented.