Greasy Fork is available in English.

Give me old Reddit, better Reddit

Converts reddit.com links to old.reddit.com links while breaking as little as possible.

// ==UserScript==
// @name         Give me old Reddit, better Reddit
// @namespace    https://github.com/junkhacker/Give-me-old-Reddit
// @version      1.6
// @description  Converts reddit.com links to old.reddit.com links while breaking as little as possible. 
// @author       Junkhacker
// @match        ://*.reddit.com/*
// @icon         https://www.google.com/s2/favicons?domain=www.reddit.com
// @grant        GM_addStyle
// @run-at       document-start
// @license      MIT
// ==/UserScript==

GM_addStyle(`
    #sr-header-area .redesign-beta-optin {
        display: none !important;
    };
`)

function test(url){
    if(!!url.match(/^(|http(s?):\/\/)(new|chat).reddit.com(.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/poll\/.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/api\/.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/gallery\/.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(.*\/s\/.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/chat.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/media.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/account\/sso\/.*)/gim)){
    return false;}
    else if(!!url.match(/^(|http(s?):\/\/)(|www.)reddit.com(\/.*|$)/gim)){
    return true;}
}

function getNewPagePlease(url){
    return 'https://old.reddit.com' + url.split('reddit.com').pop();
}

function betterReddit(){
    var links = Array.prototype.slice.call(document.links, 0);
    links.filter(function(link){
        if(test(link.href)){
            var greatNewLink = getNewPagePlease(link.href);
            if(link.hasAttribute('data-outbound-url')) link.setAttribute('data-outbound-url', greatNewLink);
            link.setAttribute('href', greatNewLink);
        }
    });
}

if(test(window.location.href)){window.location.assign(getNewPagePlease(window.location.href));}

window.onload = betterReddit;
//Repeat on Scroll
window.scroll(function() {
  betterReddit();
});