Fix Discogs Links

Redirect external links to the original version if lang is not "en" and modify artist links based on the lang attribute

Fra og med 10.11.2023. Se den nyeste version.

// ==UserScript==
// @name         Fix Discogs Links
// @version      1.0
// @description  Redirect external links to the original version if lang is not "en" and modify artist links based on the lang attribute
// @author       You
// @match        *://www.discogs.com/*
// @grant        none
// @namespace https://greatest.deepsurf.us/users/1215012
// ==/UserScript==

(function() {
    'use strict';

    // Function to modify links
    function modifyLinks() {
        // Check the lang attribute in the <html> tag
        var langAttribute = document.documentElement.getAttribute('lang');

        // Check if lang is not "en"
        if (langAttribute !== 'en') {
            // Find all links that contain the "/x/" fragment and have the hrefLang="x" attribute
            var links = document.querySelectorAll('a[href*="/' + langAttribute + '"][hrefLang="' + langAttribute + '"]:not([href*="discogs.com/"])');

            // Iterate over all found links
            links.forEach(function(link) {
                // Replace the link with the version without "/x/"
                link.href = link.href.replace('/' + langAttribute, '');
            });
        }

        // Read the 'lang' attribute from the HTML document
        var langAttributeForArtist = document.documentElement.lang;

        // Select all links on the page
        var artistLinks = document.querySelectorAll('a');

        // Iterate through the links and make modifications
        artistLinks.forEach(function(link) {
            var originalUrl = link.href;

            // Check if it is an artist link
            if (originalUrl.includes('/artist/')) {
                // Replace 'artist' with 'lang/artist'
                var newUrl = originalUrl.replace('/artist/', '/' + langAttributeForArtist + '/artist/');

                // Set the modified link
                link.href = newUrl;

                // Optional: Log the modified link
                console.log('Original URL:', originalUrl);
                console.log('Modified URL:', newUrl);
            }
        });
    }

    // Execute the script when the page is loaded
    window.addEventListener('load', modifyLinks);
})();