There are 5 previous versions of this script.
// ==UserScript==
// @name Juno - add useful links
// @namespace mikecupcake
// @include http*://*.juno.co.uk/ppps/*
// @include http*://*.juno.co.uk/products/*
// @grant none
// @version 1.5
// ==/UserScript==
// set variables
var ytURL = '<a href="http://www.youtube.com/results?search_query=';
var ttURL = '<a style="color: #000; font-weight: normal;" href="http://www.torrentech.org/index.php?act=Search&CODE=01&forums=1&searchsubs=1&keywords=';
var ttURLend = '" target="_blank">[TT]</a> ';
var discogsURL = '<a href="http://www.discogs.com/search?btn=&type=all&q=';
var discogsURLend = '" target="_blank">[D]</a> ';
var whatURL = '<a href="https://what.cd/torrents.php?searchstr=';
var whatURLend = '" target="_blank">[W]</a> ';
// get artist and release names
var product = document.getElementsByClassName('artist_search_highlight');
var artistName = fixString(product[0].textContent);
// dirty hack here, there's no class set on the release title but there is an empty span we can use
// to locate it then jump back up a node to grab the text
var albumName = fixString(product[1].parentNode.textContent);
// add youtube links to tracks
var trackDivs = document.evaluate("//span[@class='title_search_highlight']",
document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = trackDivs.snapshotLength -1; i >= 0; i--) {
var elm = trackDivs.snapshotItem(i);
var trackName = elm.innerHTML.replace(/^\s+/, '');
trackName = trackName.replace(/"/g, '');
// GM_log(trackName);
var ytString = fixString(trackName) + ' ' + fixString(artistName);
var ytLink = ytURL + ytString + '" target="_blank">[Y]</a> ';
elm.innerHTML = elm.innerHTML + ' ' + ytLink;
}
// add torrentech, discogs links
var elm = document.getElementById('product_and_title');
var ttLink = ttURL + (killShorts(artistName)).replace(/\s+/g,"%20%2B") + '%20%2B' + (killShorts(albumName)).replace(/\s+/g,"%20%2B") + ttURLend;
artistName = fixString(artistName); albumName = fixString(albumName);
var discogsLink = discogsURL + artistName + ' ' + albumName + discogsURLend;
var whatLink = whatURL + artistName + ' ' + albumName + whatURLend;
elm.innerHTML = elm.innerHTML + ' ' + ttLink + ' ' + discogsLink + whatLink;
elm.firstChild.style.display = "inline";
// functions
function killShorts(string) {
// torrentech doesn't let you use search terms of less than 3 characters
array = string.split(' ');
for (var i = 0; i < array.length; i++) {
if (array[i].length < 3) { array.splice(i,1) } ;
}
string = array.join(' ');
string = string.replace(/\s+$/, '');
//alert (string + '#');
return string;
}
function fixString(string) {
string = string.replace(/&/g," ");
string = string.replace(/&/g," ");
string = string.replace(/:/g," ");
//string = string.replace(/ /g,"+");
string = string.replace(/\//g," ");
return string;
}