Last.fm - Real Names delete lock Revision 383336386465 (Wed Oct 20 2010 at 19:00) - Diff Link to this snippet: https://friendpaste.com/5I4gCia8xh1fOH1oQ7c5JQ Embed: manni perldoc borland colorful default murphy trac fruity autumn bw emacs pastie friendly Show line numbers Wrap lines 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114// ==UserScript==// @name Last.fm - Real Names// @namespace none// @include http://www.last.fm*// @include http://www.lastfm.*// @include http://cn.last.fm*// ==/UserScript==function trim(str) { return str.replace(/^\s+/, '').replace(/\s+$/, '');}function getRealName(nick, elem, sliceBy, addRealName) { GM_xmlhttpRequest({ method: 'GET', url: 'http://ws.audioscrobbler.com/2.0/?method=user.getinfo&user='+nick+'&api_key=b25b959554ed76058ac220b7b2e0a026', headers: { 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3', 'Accept': 'text/xml' }, onload: function(response) { if (!response.responseXML) { var xml = (new DOMParser()).parseFromString(response.responseText, 'text/xml'); } else { var xml = response.responseXML; } var realName = xml.getElementsByTagName('realname')[0].firstChild.nodeValue; if (realName) { if (addRealName == true) { var newText = realName.slice(0,sliceBy)+' ('+nick+')'; } else { var newText = realName.slice(0,sliceBy); } var replacedText = new RegExp(nick, 'gi'); if (!elem.hasAttribute('realNameAdded')) { elem.innerHTML = elem.innerHTML.replace(replacedText, newText); elem.setAttribute('realNameAdded', true); } } } });}function changeName(topElem, sliceBy, addRealName) { var re = /^http:\/\/(.*\.|)(last\.fm|lastfm\.[^\/]+)\/user\/([^\?#]*)$/i; var elems = topElem.getElementsByTagName('a'); for (var i = 0; i < elems.length; i++) { var elem = elems[i]; if (!elem.hasAttribute('realNameAdded')) { if (m = re.exec(elem.href)) { parts = m[3].split('/'); if (!parts[1]) { getRealName(parts[0], elem, sliceBy, addRealName); } } } }}var users = document.getElementById('users');if (users) { var elems = users.getElementsByTagName('a'); for (var i = 0; i < elems.length; i++) { var elem = elems[i]; elem.setAttribute('realNameAdded', true); }}var memberList = document.getElementById('memberList');if (memberList) { var elems = memberList.getElementsByTagName('a'); for (var i = 0; i < elems.length; i++) { var elem = elems[i]; elem.setAttribute('realNameAdded', true); }}var profileLinks = document.getElementById('profileLinks');if (profileLinks) changeName(profileLinks, 26, false); var aboutMe = document.getElementById('aboutMe');if (aboutMe) changeName(aboutMe, 30, false);var shoutList = document.getElementById('shoutList');if (shoutList) changeName(shoutList, 40, true);var recentDiscussions = document.getElementById('recentDiscussions');if (recentDiscussions) changeName(recentDiscussions, 60, true);changeName(document.body, 20, false);document.addEventListener('DOMNodeInserted', function(ev){ changeName(ev.originalTarget, 15, true); }, true);(function() {var css = "#LastAd_TopRight, #LastAd_Top, #LastAd_Mid, #footer_ads, #cbsi_f_pop, #cbsi_f, .LastAd, .advert { display: none !important; } #footer_content, #footerLinks { margin: 0 !important; } .skylineRight { padding-right: 0 !important; margin-left: 0 !important; } .skyWrap { padding: 0 0 0 3px !important; } .forumComments .wrapper, .forumComments .date { width: 100% !important; }";if (typeof GM_addStyle != "undefined") { GM_addStyle(css);} else if (typeof PRO_addStyle != "undefined") { PRO_addStyle(css);} else if (typeof addStyle != "undefined") { addStyle(css);} else { var heads = document.getElementsByTagName("head"); if (heads.length > 0) { var node = document.createElement("style"); node.type = "text/css"; node.appendChild(document.createTextNode(css)); heads[0].appendChild(node); }}})();