Fix Discogs Links

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

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

Advertisement:

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

Advertisement:

// ==UserScript==
// @name         Fix Discogs Links
// @version      1.1
// @description  Redirect external links to the original version if lang is not "en" and modify artist links based on the lang attribute
// @author       Kai
// @match        *://www.discogs.com/*
// @grant        none
// @namespace https://greasyfork.org/users/1215012
// ==/UserScript==
(function() {
    'use strict';
    // Check the lang attribute in the <html> tag
    var langAttribute = document.documentElement.getAttribute('lang');
    // Function to modify links
    function modifyLinks() {   
        // 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, '');
            });
                 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 without a languge attribute
            if (originalUrl.includes('com/artist/')) {
                // Replace 'com/artist' with 'com/lang/artist'
                var newUrl = originalUrl.replace('com/artist/', 'com/' + langAttribute + '/artist/');
                // Set the modified link
                link.href = newUrl;
            }
        });

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