For those that use Tampermonkey or GreaseMonkey, here’s a quick script I whipped up that creates a button that redirects communities from other instances to your local instance. If your instance isn’t lemmy.world, then change the localLemmy var at the top. Enjoy!

// ==UserScript==
// @name         Lemmings Fix
// @version      1.0
// @description  Redirect to your local Lemmy instance
// @author       @lemmy.world/u/soy
// @match        https://*/c/*
// @icon         https://join-lemmy.org/static/assets/icons/favicon.svg
// @grant        GM_addStyle
// ==/UserScript==

const localLemmy = 'lemmy.world';
var isLemmy = document.head.querySelector("[name~=Description][content]").content === 'Lemmy';

if (isLemmy) {
    // Get URL info
    var splitUrl = location.href.split('/');
    var instanceUrl = splitUrl[2];
    var community = splitUrl[4];
    var localizedUrl = 'https://' + localLemmy + '/c/' + community + '@' + instanceUrl;

    // Create redirect button if not on local
    if (instanceUrl !== localLemmy) {
        var zNode = document.createElement ('div');
        zNode.innerHTML = '<button id="localize" type="button">Open in local instance</button>';
        zNode.setAttribute('id', 'localizeContainer');
        document.body.appendChild(zNode);
        document.getElementById ("localize").addEventListener (
            "click", onLocalize
        );
    }
}

function onLocalize (zEvent) {
    window.location.replace(localizedUrl);
}

GM_addStyle ( `
    #localizeContainer {
        position: fixed;
        right: 0px;
        bottom: 0px;
    }
    #localize {
        cursor: pointer;
        padding: 16px;
    }
` );

  • TRBoom
    link
    English
    21 year ago

    Excellent work!