Greasy Fork is available in English.
Converts reddit.com links to old.reddit.com links
// ==UserScript==// @name Old Reddit Redirect!// @version 1// @description Converts reddit.com links to old.reddit.com links// @author idk// @match *://*.reddit.com/*// @exclude *://www.reddit.com/poll/*// @grant none// @run-at document-start// @license MIT// @namespace https://greasyfork.org/users/1101475// ==/UserScript==// Used for optimization when there's too many links on a pageconst use_optimization = true;// Number of links on the page before using optimizationconst opti_threshold = 250;const opti_dataname = 'orp40897';// Time between each cleanup (in milliseconds)const clean_interval = 1000;const log = (msg) => console.log(`[old-reddit-please] ${msg}`);log("Loaded");// Text a URL to make sure it's a Reddit domainfunction test(url) {return !!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/.*|$)/gim);}/*** Pass a link and return the new one if it's a reddit link.* Anything else and you'll get the original input back.**/function updateLink(url) {try {var target = new URL(url);if (target.hostname == 'www.reddit.com') {target.hostname = 'old.reddit.com';return target.href;} else return url;} catch(e) {return url;}}// Main fuction(() => {let ready = true;let last_count = 0;let selector = 'a';const update_links = () => {if (ready) {ready = false;if (use_optimization && last_count >= opti_threshold) {selector = `a:not([data-${opti_dataname}])`;}const links = document.querySelectorAll(selector);last_count = links.length;if (last_count > 0) log('Updated ' + links.length + ' links');for (const link of links) {// Don't clean links that have already been cleaned// This is to prevent slowing down pages when there are a lot of links// For example, endless scroll on redditif (use_optimization && selector !== 'a') {link.setAttribute(`data-${opti_dataname}`, '1');}try {// Make sure it's a valid URLnew URL(link.href);// Run the cleanerconst updated = updateLink(link.href);if(updated !== link.href) link.setAttribute('href', updated);} catch (error) {// Ignore invalid URLs}}setTimeout(() => (ready = true), clean_interval);}};const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;const observer = new MutationObserver(update_links);observer.observe(document, { childList: true, subtree: true });window.addEventListener('load', () => setInterval(update_links, clean_interval));update_links();})();if(test(window.location.href)){window.location.assign(updateLink(window.location.href));}