Extra caution is recommended when installing recently uploaded/updated scripts (read more)
Be sure you trust any scripts you install
lastfmjunkie
Adds a link to search btjunkie.org on last.fm artist pages.
This simple script adds a link to search btjunkie.org on last.fm artist pages. It'll appear with the btjunkie logo next to the artists name at the top middle of the page. The query is then done via ajax and the results loaded just below so you don't have to leave last.fm.
I recognise this is a bit of a dodgy script... but I do this all the time when I'm looking for new bands. Hope someone else finds it useful to!
You could comment on this script if you were logged in.

login to vote
Does not work anymore with the new last.fm design.
Use this enhanced one instead!
This will also work on international lastfm.* sites.
// ==UserScript== // @name lastfmjunkie // @description adds btjunkie searching for last.fm artists // @include http://www.last.fm/music/* // @include http://www.lastfm.*/music/* // ==/UserScript== function lastfmjunkie_search() { var catpage = document.getElementById( 'catalogueHead' ); if ( !catpage ) return; var heading = catpage.getElementsByTagName( 'h1' )[0]; if ( !heading ) return; var artistName = new String( heading.firstChild.nodeValue ); lastfmjunkie_setResults( 'Searching BTJunkie...' ); GM_xmlhttpRequest({ method: 'GET', url: 'http://btjunkie.org/rss.xml?query=' + escape(artistName), onload: function( res ) { if ( res.readyState == 4 && res.status == 200 ) lastfmjunkie_displayXml( res.responseText, artistName ); } }); }; function lastfmjunkie_xmlChildValue( node, name ) { var child = node.getElementsByTagName( name )[0]; return child ? child.firstChild.nodeValue : ''; } function lastfmjunkie_setResults( text ) { var results = document.getElementById( 'lastfmjunkie_results' ); while ( results.firstChild ) results.removeChild( results.firstChild ); results.appendChild( document.createTextNode(text) ); results.style.display = 'block'; } function lastfmjunkie_displayXml( xmlText, band ) { var parser = new DOMParser(); var xml = parser.parseFromString( xmlText, 'application/xml' ); var root = xml.documentElement; var items = root.getElementsByTagName( 'item' ); var results = document.getElementById( 'lastfmjunkie_results' ); var header = document.createElement( 'h5' ); lastfmjunkie_setResults( '' ); header.appendChild( document.createTextNode('BTJunkie Results (first 20)') ); results.appendChild( header ); if ( !items.length ) { results.appendChild( document.createTextNode('nothing found, sorry!') ); } else for ( var i=0; i<items.length && i<20; i++ ) { var item = items[ i ]; var stitle = lastfmjunkie_xmlChildValue(item,'title'); var slink = lastfmjunkie_xmlChildValue(item,'link'); var sdesc = lastfmjunkie_xmlChildValue(item,'description'); var elink = document.createElement( 'a' ); var etext = document.createTextNode( stitle ); elink.style.display = 'block'; elink.href = slink; elink.appendChild( etext ); results.appendChild( elink ); } var more = document.createElement( 'a' ); more.href = 'http://btjunkie.org/search?q=' + escape(band); more.appendChild( document.createTextNode('see all results') ); more.style.fontWeight = 'bold'; var close = document.createElement( 'a' ); close.href = 'javascript:;'; close.addEventListener( 'click', function() { results.style.display = 'none'; }, true ); close.appendChild( document.createTextNode('close') ); results.appendChild( document.createElement('br') ); results.appendChild( more ); results.appendChild( document.createTextNode(' - ') ); results.appendChild( close ); } function lastfmjunkie_run() { var catpage = document.getElementById( 'catalogueHead' ); if ( !catpage ) return; var heading = catpage.getElementsByTagName( 'h1' )[0]; var paragraphs = catpage.getElementsByTagName( 'p' ); var stats; for ( var i=0; i<paragraphs.length && i<10; i++ ) { if ( paragraphs[i].getAttribute('class')=='stats' ) { stats = paragraphs[i]; } } if ( !stats ) return; var title = heading; var link = document.createElement( 'a' ); var linkImg = document.createElement( 'img' ); var results = document.createElement( 'div' ); linkImg.src = 'data:image/x-ico;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEAAAkFAwAHBQQAGBALACQYEAAoGQ8AOCIVAEIoGAA6ODYAPDo6AD08PABQPjQAQEBAAHpLLQBbTEQAhFExAF1ORgBeU0wAYVRMAIVXOgBlWVIAj2FEAGxkXwB6eXgAfXx8AICAgACphW8ArIp0ALCPegCwkHwAm5SPAKGWjwC4mogAuJyKALqdiwC%2Bo5IAwKaWAMKomADEq5wAxq%2BhAM66rQDQvLAA1MO4ANfGvADYyL4A39LKAODTywDg1MwA4dXNAObb1QDo3tgA5eTjAPDq5gD07%2BwA9fHuAPr4%2BAD8%2BvoA%2FPz7AP%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRoaGhoaGhoaGhoaGhoaDRo7Ozs7Ozs7Ozs7Ozs6GhoTJiYmKDE7Ozs7NiYmIDsaCBAQEBAQGzo7OjMQEC47GggQKSweEBAqOgsPEBAwOxoIEDU7ORAQIgsADBAQMDsaCBArLyQQDgQAAAwQEDA7GggQEBAQFAUAAAAPEBAwOxoIECUnFgcAAAALMhAQMDsaCBA1OhICAAALOjMQEDA7GggQIxUAAAAJISMdEBAcIxEIEAYBAAALNxAQEBAQEBAIFy0fAwALOjotLS0tLS0tFxk6GDQLODs7Ozs7Ozs7OxoLADo7Ozs7Ozs7Ozs7OzsaDQoZGhoaGhoaGhoaGhoaDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D'; linkImg.style.border = 'none'; linkImg.style.margin = '0px 10px'; results.id = 'lastfmjunkie_results'; results.style.display = 'none'; results.style.padding = '5px'; results.style.borderTop = '1px #ccc solid'; results.style.borderBottom = '1px #ccc solid'; results.style.backgroundColor = '#eee'; results.style.margin = '5px 0px'; title.style.float = 'left'; link.style.float = 'left'; link.href = 'javascript:;'; link.addEventListener( 'click', lastfmjunkie_search, true ); link.appendChild( linkImg ); heading.appendChild( link ); stats.parentNode.insertBefore( results, stats.previousSibling ); } setTimeout( lastfmjunkie_run, 2000 );login to vote
Good idea. Thanks.