// ==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://greasyfork.org/users/1215012 // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Function to modify links function modifyLinks() { // Check the lang attribute in the 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); })();