Last.fm - Hide Activity Box

Allows user to toggle display of activity box in their own profile

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name		Last.fm - Hide Activity Box
// @namespace	http://no.name.space/
// @description	Allows user to toggle display of activity box in their own profile
// @include	http://www.last.fm/user/*
// @include	http://www.last.fm/place/*
// @include	http://www.last.fm/music/*
// @include	http://www.last.fm/home
// @include	http://www.lastfm.fr/user/*
// @include	http://www.lastfm.fr/music/*
// @include	http://www.lastfm.fr/place/*
// @include	http://www.lastfm.de/user/*
// @include	http://www.lastfm.de/music/*
// @include	http://www.lastfm.de/place/*
// @include	http://www.lastfm.es/user/*
// @include	http://www.lastfm.es/music/*
// @include	http://www.lastfm.es/place/*
// @include	http://www.lastfm.se/user/*
// @include	http://www.lastfm.it/user/*
// @include	http://www.lastfm.it/music/*
// @exclude	http://www.lastfm.se/music/*
// @include	http://www.lastfm.se/place/*
// @include	http://www.lastfm.com.br/user/*
// @exclude	http://www.lastfm.com.br/music/*
// @include	http://www.lastfm.com.br/place/*
// @exclude	http://www.last.fm/user/*/*
// @exclude	http://www.lastfm.fr/user/*/*
// @exclude	http://www.lastfm.de/user/*/*
// @exclude	http://www.lastfm.it/user/*/*
// @exclude	http://www.lastfm.es/user/*/*
// @exclude	http://www.lastfm.se/user/*/*
// @exclude	http://www.lastfm.com.br/user/*/*
// @version 0.0.1.20140511024434
// ==/UserScript==

// 26-Jul-2008 created snyde1
// 26-Sep-2008 update for more pages, languages

function xpath(query) {
	return document.evaluate(query, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
}
function drudgeWork (myNode, myId, myKey) {
	if (!document.getElementById(myId)) {
		myNode.nextSibling.nextSibling.setAttribute("id",myId);
	}
	var myTempStr = "<A style=\"color: #D51007;\" HREF=\"javascript:(hydeSnyde('"+myId+"','"+myKey+"'))\">+/&ndash;</A> / ";
	if (myId != "player") {
		myNode.firstChild.innerHTML = myTempStr + myNode.firstChild.innerHTML;
	}
	if(document.cookie.match(/HydeVSJekyll=/)) {
		var oldCookie = document.cookie.match(/HydeVSJekyll=([^;]*)[;$]/)[1];
		var keyThere = new RegExp(myKey);
		if (oldCookie.match(keyThere)) {
			document.getElementById(myId).setAttribute('style','display: none;  visibility: hidden;');
		}
	} else {
		var myDte = new Date((new Date()).getTime() + (2*365*24*3600*1000));
		var myStr = "HydeVSJekyll=RA; "+"expires="+myDte.toGMTString();
		document.cookie = myStr;
	}
}
function getLastfmUsername() {
	var usernameLink = xpath("//a[contains(@class,'user-badge')]");
	if (usernameLink.snapshotLength > 0) {
		return(usernameLink.snapshotItem(1).innerHTML);
	} else {
		usernameLink = xpath("//a[@id='idBadgerUser']");
		if (usernameLink.snapshotLength > 0) {
			var userNameLoc = usernameLink.snapshotItem(0).innerHTML;
			userNameLoc = userNameLoc.replace(/<[^<>]*>/g,"").replace(/^\s*/m,"").replace(/\s*$/,"");
			return(userNameLoc);
		} else {
			return("");
		}
	}
}
(function () {
//	username = getLastfmUsername();
//	if (username == "") { return; }
//	var re2 = new RegExp("\/"+username+"$", "i");	// Is it my page or another's?
//	if (! location.href.match(re2)) { return; }

// Matches for English
var raRE = new RegExp(/Recent Activity/i);
var rvRE = new RegExp(/Recent Visitors/i);
var amRE = new RegExp(/About Me/i);
var frRE = new RegExp(/Friends/);
var lbfrRE = new RegExp(/(Your friends in common|You are connected through)/);
var arRE = new RegExp(/Journals/i);
var grRE = new RegExp(/Groups/i);
var evRE = new RegExp(/Events/i);
var neRE = new RegExp(/Neighbours/i);
var libRE = new RegExp(/ Library/i);
var retRE = new RegExp(/Recently Listened Tracks/i);
var sbRE = new RegExp(/ShoutBox/i);
var taRE = new RegExp(/Top Artists/i);
var ttRE = new RegExp(/Top Tracks/i);
var talRE = new RegExp(/Top Albums/i);
var rarRE = new RegExp(/Related Journals/i);
var pliRE = new RegExp(/More Information/i);
var liRE = new RegExp(/Top Listeners/i);
var lnRE = new RegExp(/Listening Now/i);
var ltRE = new RegExp(/Listening Trend/i);
var emnRE = new RegExp(/Email Newsletter/i);
var simRE = new RegExp(/Similar/i);
var vidRE = new RegExp(/Videos/i);
// for French
if (location.href.match(/www.lastfm.fr/i)) {
	raRE = new RegExp(/Activit. r.cente/i);
	rvRE = new RegExp(/Visiteurs r.cents/i);
	amRE = new RegExp(/propos de moi/i);
	frRE = new RegExp(/Amis/);
	lbfrRE = new RegExp(/(Vos amis en commun|Vous .tes connect. via)/);
	arRE = new RegExp(/Articles/i);
	grRE = new RegExp(/Groupes/i);
	evRE = new RegExp(/Concerts/i);
	neRE = new RegExp(/Voisins/i);
	libRE = new RegExp(/Biblioth.que de /i);
	retRE = new RegExp(/Morceaux .cout.s r.cemment/i);
	taRE = new RegExp(/Top Artistes/i);
	ttRE = new RegExp(/Top Titres/i);
	rarRE = new RegExp(/Articles li.s/i);
	pliRE = new RegExp(/Plus d.infos/i);
	liRE = new RegExp(/Auditeurs/i);
	lnRE = new RegExp(/coutent en ce moment/i);
	ltRE = new RegExp(/Tendance d..coute/i);
	emnRE = new RegExp(/Newsletter par email/i);
	simRE = new RegExp(/similaires/i);
	vidRE = new RegExp(/Vid.os/i);
} // for German
if (location.href.match(/www.lastfm.de/i)) {
	raRE = new RegExp(/Letzte Aktivit.ten/i);
	rvRE = new RegExp(/Letzte Besucher/i);
	amRE = new RegExp(/.ber mich/i);
	frRE = new RegExp(/[^ ]Freunde /i);
	lbfrRE = new RegExp(/(Eure gemeinsamen Freunde|Ihr seid verbunden durch)/);
	arRE = new RegExp(/Blogeintr.ge/i);
	grRE = new RegExp(/Gruppen/i);
	neRE = new RegExp(/Nachbarn/i);
	libRE = new RegExp(/ Musiksammlung/i);
	retRE = new RegExp(/K.rzlich angeh.rte Titel/i);
	taRE = new RegExp(/Top-K.nstler/i);
	talRE = new RegExp(/Top.Alben/i);
	ttRE = new RegExp(/Top-Titel/i);
//	rarRE = new RegExp(/Blogeintr.ge/i);
	pliRE = new RegExp(/Weitere Informationen/i);
	liRE = new RegExp(/Top-H.rer/i);
	lnRE = new RegExp(/Aktuelle.H.rer/i);
//	ltRE = new RegExp(/H.rtrend/i);
	simRE = new RegExp(/.hnliche K.nstler/i);
} // Spanish
if (location.href.match(/www.lastfm.es/i)) {
	raRE = new RegExp(/Actividad reciente/i);
	rvRE = new RegExp(/Visitas recientes/i);
	amRE = new RegExp(/Con.ceme/i);
	frRE = new RegExp(/Amigos/i);
	arRE = new RegExp(/Blogs/i);
	grRE = new RegExp(/Grupos/i);
	neRE = new RegExp(/Vecinos/i);
	libRE = new RegExp(/Colecci.n de /i);
	retRE = new RegExp(/Temas escuchados recientemente/i);
	taRE = new RegExp(/Artistas m.s escuchados/i);
	talRE = new RegExp(/.lbumes m.s escuchados/i);
	ttRE = new RegExp(/Temas m.s escuchados/i);
	rarRE = new RegExp(/Blogs relacionados/i);
	pliRE = new RegExp(/M.s informaci.n/i);
	liRE = new RegExp(/Oyentes/i);
	simRE = new RegExp(/Artistas similares/i);
	sbRE = new RegExp(/Notas/i);
	evRE = new RegExp(/Eventos/i);
	vidRE = new RegExp(/V.deos/i);
} // Swedish
if (location.href.match(/www.lastfm.se/i)) {
	raRE = new RegExp(/Senaste aktiviteter/i);
	rvRE = new RegExp(/Senaste bes.karna/i);
	amRE = new RegExp(/Om mig/i);
	frRE = new RegExp(/V.nner/i);
	arRE = new RegExp(/Bloggar/i);
	grRE = new RegExp(/Grupper/i);
	neRE = new RegExp(/Grannar/i);
	libRE = new RegExp(/ bibliotek/i);
	retRE = new RegExp(/Senast spelade l.tar/i);
	taRE = new RegExp(/Toppartister/i);
	talRE = new RegExp(/Toppalbum/i);
	ttRE = new RegExp(/Toppl.tar/i);
	rarRE = new RegExp(/Relaterade bloggar/i);
	pliRE = new RegExp(/Mer information/i);
	liRE = new RegExp(/Lyssnare/i);
	simRE = new RegExp(/Liknande artister/i);
	sbRE = new RegExp(/Hojtl.da/i);
	evRE = new RegExp(/Spelningar/i);
	vidRE = new RegExp(/Videor/i);
} // Italian
if (location.href.match(/www.lastfm.it/i)) {
	raRE = new RegExp(/Attivit. recenti/i);
	rvRE = new RegExp(/Visitatori recenti/i);
	amRE = new RegExp(/Descrizione/i);
	frRE = new RegExp(/Amici/i);
	arRE = new RegExp(/Articoli /i);
	grRE = new RegExp(/Gruppi/i);
	neRE = new RegExp(/Grannar/i);
	libRE = new RegExp(/Libreria di /i);
	retRE = new RegExp(/Brani ascoltati di recente/i);
	taRE = new RegExp(/Artisti pi. ascoltati/i);
	talRE = new RegExp(/Album pi. ascoltati/i);
	ttRE = new RegExp(/Brani pi. ascolta/i);
	rarRE = new RegExp(/Articoli correlati/i);
	pliRE = new RegExp(/Ulteriori informazioni/i);
	liRE = new RegExp(/Ascoltatori/i);
	simRE = new RegExp(/Artisti simili/i);
	sbRE = new RegExp(/Bacheca/i);
	evRE = new RegExp(/Eventi/i);
	vidRE = new RegExp(/Video/i);
} // Portuguese
if (location.href.match(/www.lastfm.com.br/i)) {
	raRE = new RegExp(/Atividade recente/i);
	rvRE = new RegExp(/Visitantes recentes/i);
	amRE = new RegExp(/Sobre mim/i);
	frRE = new RegExp(/Amigos/i);
	arRE = new RegExp(/Posts /i);
	grRE = new RegExp(/Grupos/i);
	neRE = new RegExp(/Vizinhos/i);
	libRE = new RegExp(/Biblioteca de /i);
	retRE = new RegExp(/.ltimas faixas/i);
	taRE = new RegExp(/Principais artistas/i);
	talRE = new RegExp(/Principais .lbuns/i);
	ttRE = new RegExp(/As faixas mais tocadas/i);
	rarRE = new RegExp(/Blogs relacionados/i);
	pliRE = new RegExp(/Mais informa..es/i);
	liRE = new RegExp(/Ouvintes/i);
	simRE = new RegExp(/Parecidos/i);
	sbRE = new RegExp(/Caixa de mensagens/i);
	evRE = new RegExp(/Eventos/i);
	vidRE = new RegExp(/V.deos/i);
}
	writeHideSnyde();

	if (document.getElementById("player")) {
		var plyrNode = document.getElementById("player");
		var prePlyr = document.createElement("DIV");
		prePlyr.innerHTML = "<H2 Class='heading'><span class='h2Wrapper'><A style=\"color: #ff0000;\" HREF=\"javascript:(hydeSnyde('player','P'))\">+/&ndash;</A> / Player</span></H2>";
		plyrNode.parentNode.insertBefore(prePlyr,plyrNode);
		drudgeWork(plyrNode,"player","P");
	}
	var activityHdr = xpath("//H2"); // xpath("//H2[contains(@Class, 'heading')]");
	for (var i=0; i<activityHdr.snapshotLength; i++) {
		if (activityHdr.snapshotItem(i).innerHTML.match(raRE)){
			var myNode=activityHdr.snapshotItem(i);
			if (myNode.nextSibling.nextSibling.nextSibling.nextSibling.tagName.match(/UL/i)) {
				myNode.nextSibling.nextSibling.nextSibling.nextSibling.setAttribute("id","MyActivityBox");
			} else {
				myNode.nextSibling.nextSibling.setAttribute("id","MyActivityBox");
			}
			drudgeWork(myNode,"MyActivityBox","R");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(rvRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyRVisitorsBox","V");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(amRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyMeBox","A");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(liRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyHearYa","H");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(lnRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyHearNow","h");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(ltRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyHearTrnd","d");
		}
//		if (activityHdr.snapshotItem(i).innerHTML.match(emnRE)){
//			drudgeWork(activityHdr.snapshotItem(i),"MyEmailNews","e");
//		}
		if (activityHdr.snapshotItem(i).innerHTML.match(rarRE)){
			drudgeWork(activityHdr.snapshotItem(i),"ArtJournalsBox","Q");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(pliRE)){
			drudgeWork(activityHdr.snapshotItem(i),"ArtInfoBox","I");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(frRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyFriendsBox","F");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(lbfrRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyFriendsLab","f");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(arRE) && !location.href.match(/\/music\//) ){
			drudgeWork(activityHdr.snapshotItem(i),"MyJournalsBox","J");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(grRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyGroupsBox","G");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(evRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyEventBox","E");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(neRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyNeighboursBox","N");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(libRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyLibraryBox","L");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(sbRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyYelling","Y");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(retRE)){
			var nodeIWant = activityHdr.snapshotItem(i).parentNode.getElementsByTagName("TABLE");
			if (nodeIWant.length > 0) {
				nodeIWant[0].setAttribute("id","MyTracksBox");
				drudgeWork(activityHdr.snapshotItem(i),"MyTracksBox","T");
			}
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(taRE)){
			var nodeIWant = activityHdr.snapshotItem(i).parentNode.getElementsByTagName("DIV");
			if (nodeIWant.length > 2) {
				var nodeNum = 2; if (location.href.match(/\/place\//)) {nodeNum=1; }
				nodeIWant[nodeNum].setAttribute("id","MyTopBands");
				drudgeWork(activityHdr.snapshotItem(i),"MyTopBands","B");
			}
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(ttRE)){
			var nodeIWant = activityHdr.snapshotItem(i).parentNode.getElementsByTagName("DIV");
			if (location.href.match(/\/music\//) || location.href.match(/\/place\//)) {
				if (nodeIWant.length > 1) {
					nodeIWant[1].setAttribute("id","MyTopSongs");
					drudgeWork(activityHdr.snapshotItem(i),"MyTopSongs","S");
				}
			} else {
				if (nodeIWant.length > 2) {
					nodeIWant[2].setAttribute("id","MyTopSongs");
					drudgeWork(activityHdr.snapshotItem(i),"MyTopSongs","S");
				}
			}
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(talRE)){
			var nodeIWant = activityHdr.snapshotItem(i).parentNode.getElementsByTagName("DIV");
			if (!document.getElementById("MyTopAlbums")) {
				drudgeWork(activityHdr.snapshotItem(i),"MyTopAlbums","W");
			} else {
				if (location.href.match(/\/music\//) || location.href.match(/\/place\//)) {
					if (nodeIWant.length > 1) {
						nodeIWant[1].setAttribute("id","MyTopAlbums");
						drudgeWork(activityHdr.snapshotItem(i),"MyTopAlbums","W");
					}
				} else {
					if (nodeIWant.length > 2) {
						nodeIWant[2].setAttribute("id","MyTopAlbums");
						drudgeWork(activityHdr.snapshotItem(i),"MyTopAlbums","W");
					}
				}
			}
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(simRE)){
			drudgeWork(activityHdr.snapshotItem(i),"ArtPretend","D");
		}
		if (activityHdr.snapshotItem(i).innerHTML.match(vidRE)){
			drudgeWork(activityHdr.snapshotItem(i),"MyTopVideo","X");
		}
	}
}) ();
function writeHideSnyde() { if (! document.getElementById('HydeVSJekyll') ) {
//	var contextElem = document.getElementById("content");
//	var contextElem = document.getElementById("fauxHeaderContainer");
	var contextElem = document.getElementById("page");
	var theScriptText = "";
	theScriptText += "function hydeSnyde(drJekyll,jsLab) { var Jekyll = document.getElementById(drJekyll);";
	theScriptText += "var myDte = new Date((new Date()).getTime() + (2*365*24*3600*1000)); ";
	theScriptText += " if (document.cookie.match(/HydeVSJekyll=/)) {";
	theScriptText += " var oldCookie = document.cookie.match(/HydeVSJekyll=([^;]*)[;$]/)[1];";
	theScriptText += " } else {var oldCookie = ''; }";
	theScriptText += "if (Jekyll.getAttribute('style') == null) ";
	theScriptText += "{Jekyll.setAttribute('style','display: none; visibility: hidden;'); ";
	theScriptText += " oldCookie += jsLab;";
	theScriptText += "} else { Jekyll.removeAttribute('style'); var jsLabRE = new RegExp(jsLab,'g'); oldCookie = oldCookie.replace(jsLabRE,'');} ";
	theScriptText += " var myCke = 'HydeVSJekyll='+oldCookie+'; expires='+myDte.toGMTString()+';';";
	theScriptText += " document.cookie = myCke;";
	theScriptText += "};";
	var theScript = document.createElement("script");  theScript.setAttribute('language','JavaScript'); theScript.setAttribute('id','HydeVSJekyll');
	theScript.innerHTML =  theScriptText;
	contextElem.insertBefore(theScript,contextElem.firstChild);
}}