Greasy Fork

Greasy Fork is available in English.

Fix Discogs Links

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

当前为 2023-11-10 提交的版本,查看 最新版本

// ==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 http://greasyfork.icu/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);
})();