Benutzer:RobbiRobb/AbuseLog.js

Aus PokéWiki
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
  • Konqueror: Aktualisieren anklicken oder F5 drücken
/**
* AbuseLog fügt neue Einträge aus dem AbuseLog
* passend in die letzten Änderungen ein
*
* @author RobbiRobb
*/
$(document).ready(function() {
	if(mw.config.get("wgRelevantPageName") !== "Spezial:Letzte_Änderungen") {
		return;
	}
	
	mw.loader.using('mediawiki.api', function() {
		var api = new mw.Api();
		api.get({
			action: 'query',
			list: 'abuselog',
			afllimit: 'max'
		}).done(function(data) {
			var rc = Array.from(document.getElementsByClassName("mw-changeslist-line"));
			
			data.query.abuselog.forEach(function(entry) {
				var entryDate = new Date(entry.timestamp);
				
				var whiteSpace = document.createTextNode(" ");
				
				var node = document.createElement("li");
				node.classList.add("mw-changeslist-line");
				node.classList.add("mw-changeslist-log");
				node.dataset.mwTs = entryDate.getFullYear() + (entryDate.getMonth() + 1).toString().padStart(2, "0") + entryDate.getDate() + entryDate.getHours() + entryDate.getMinutes() + entryDate.getSeconds();
				
				var inner = document.createElement("span");
				inner.classList.add("mw-changeslist-line-inner");
				inner.dataset.targetPage = entry.user;
				node.appendChild(inner);
				
				var link = document.createElement("a");
				link.classList.add("mw-changeslist-links");
				link.href="/Spezial:Missbrauchsfilter-Logbuch";
				link.title = "Spezial:Missbrauchsfilter-Logbuch";
				link.innerText = "Missbrauchsfilter-Logbuch";
				inner.appendChild(link);
				
				var semicolon = document.createElement("span");
				semicolon.classList.add("mw-changeslist-separator--semicolon");
				inner.appendChild(semicolon);
				inner.appendChild(whiteSpace.cloneNode());
				
				var date = document.createElement("span");
				date.classList.add("mw-changeslist-date");
				date.innerText = entryDate.getHours().toString().padStart(2, "0") + ":" + entryDate.getMinutes().toString().padStart(2, "0");
				inner.appendChild(date);
				inner.appendChild(whiteSpace.cloneNode());
				
				var separator = document.createElement("span");
				separator.classList.add("mw-changeslist-separator");
				inner.appendChild(separator);
				inner.appendChild(whiteSpace.cloneNode());
				
				var logEntry = document.createElement("span");
				logEntry.classList.add("mw-changeslist-log-entry");
				inner.appendChild(logEntry);
				
				var userLink = document.createElement("a");
				userLink.classList.add("mw-userlink");
				userLink.href = "/Benutzer:" + entry.user;
				userLink.title = "Benutzer:" + entry.user;
				userLink.innerText = entry.user;
				logEntry.appendChild(userLink);
				logEntry.appendChild(whiteSpace.cloneNode());
				
				var userTools = document.createElement("span");
				userTools.classList.add("mw-usertoollinks");
				userTools.classList.add("mw-changeslist-links");
				logEntry.appendChild(userTools);
				
				var talk = document.createElement("span");
				var talkLink = document.createElement("a");
				talkLink.classList.add("mw-usertoollinks-talk");
				talkLink.href = "/Benutzer Diskussion:" + entry.user;
				talkLink.title = "Benutzer Diskussion:" + entry.user;
				talkLink.innerText = "Diskussion";
				talk.appendChild(talkLink);
				userTools.appendChild(talk);
				
				var contribs = document.createElement("span");
				var contribsLink = document.createElement("a");
				contribsLink.classList.add("mw-usertoollinks-contribs");
				contribsLink.href = "/Spezial:Beiträge/" + entry.user;
				contribsLink.title = "Spezial:Beiträge/" + entry.user;
				contribsLink.innerText = "Beiträge";
				contribs.appendChild(contribsLink);
				userTools.appendChild(contribs);
				
				var block = document.createElement("span");
				var blockLink = document.createElement("a");
				blockLink.classList.add("mw-usertoollinks-block");
				blockLink.href = "/Spezial:Sperren/" + entry.user;
				blockLink.title = "Spezial:Sperren/" + entry.user;
				blockLink.innerText = "Sperren";
				block.appendChild(blockLink);
				userTools.appendChild(block);
				
				var leftText = document.createTextNode(" verstieß gegen ");
				logEntry.appendChild(leftText);
				
				var filterLink = document.createElement("a");
				filterLink.classList.add("mw-changeslist-title");
				filterLink.href = "/Spezial:Missbrauchsfilter/" + entry.filter_id;
				filterLink.title = "Spezial:Missbrauchsfilter/" + entry.filter_id;
				filterLink.innerText = "Filter " + entry.filter_id;
				logEntry.appendChild(filterLink);
				
				var rightText = document.createTextNode(" auf der Seite ");
				logEntry.appendChild(rightText);
				
				var page = document.createElement("span");
				page.classList.add("mw-title");
				logEntry.appendChild(page);
				
				var pageLink = document.createElement("a");
				pageLink.classList.add("mw-changeslist-title");
				pageLink.href = "/" + entry.title;
				pageLink.title = entry.title;
				pageLink.innerText = entry.title;
				page.appendChild(pageLink);
				
				for(i = 0; i < rc.length; i++) {
					const rcDate = rc[i].dataset.mwTs;
					var ts = new Date(rcDate.substring(0, 4) + "-" + rcDate.substring(4, 6) + "-" + rcDate.substring(6, 8) + "T" + rcDate.substring(8, 10) + ":" + rcDate.substring(10, 12) + ":" + rcDate.substring(12, 14) + "Z");
					
					if(ts < entryDate) {
						rc[i].parentNode.insertBefore(node, rc[i]);
						break;
					}
				}
			});
		});
	});
});