Good o'l Lemmy

Makes sure you're using Good o'l Lemmy. (C) YourName 2023. License WTFPLV2

// ==UserScript==
// @name        Good o'l Lemmy
// @description Makes sure you're using Good o'l Lemmy. (C) YourName 2023. License WTFPLV2
// @version     1.0
// @match       *://*.lemmy.world/*
// @match       *://*.lemmy.ml/*
// @match       *://*.lemmy.dbzer0.com/*
// @match       *://*.sh.itjust.works/*
// @match       *://*.hexbear.net/*
// @match       *://*.lemmy.one/*
// @match       *://*.lemmy.ninja/*
// @match       *://*.programming.dev/*
// @run-at      document-start
// @grant       none
// @namespace https://greasyfork.org/users/1247638
// ==/UserScript==

const excludedPaths = [
  "/pictrs/",
  "/communities",
  "/signup",
  "/instances",
  "/modlog",
];

const domainMap = {
  "lemmy.world": "o.opnxng.com/lemmy.world",
  "lemmy.ml": "o.opnxng.com/lemmy.ml",
  "lemmy.dbzer0.com": "o.opnxng.com/lemmy.dbzer0.com",
  "sh.itjust.works": "o.opnxng.com/sh.itjust.works",
  "hexbear.net": "o.opnxng.com/hexbear.net",
  "lemmy.one": "o.opnxng.com/lemmy.one",
  "lemmy.ninja": "o.opnxng.com/lemmy.ninja",
  "programming.dev": "o.opnxng.com/programming.dev",
};

const currentDomain = window.location.host.replace(/^www\./, '');
const currentPath = window.location.pathname;

const isExcludedPath = excludedPaths.some((path) => currentPath.startsWith(path));

if (isExcludedPath) {
  // If the current path is one of the excluded paths, do not perform any redirection
} else if (domainMap.hasOwnProperty(currentDomain)) {
  const redirectTo = "https://" + domainMap[currentDomain] + currentPath + window.location.search;
  window.location.replace(redirectTo);
}