Benutzer:Schnark/js/kackbalken.js
< Benutzer:Schnark | js
Hinweis: Leere nach dem Veröffentlichen 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
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
//Dokumentatin unter [[Benutzer:Schnark/js/kackbalken]] <nowiki>
/*global mediaWiki*/
(function ($, mw) {
"use strict";
var normalMsg = {
en: ['You have ', 'new messages', ' on your ', 'talk page', '.'],
de: ['Du hast ', 'neue Nachrichten', ' auf deiner ', 'Diskussionsseite', '.'],
'de-formal': ['Sie haben ', 'neue Nachrichten', ' auf Ihrer ', 'Diskussionsseite', '.']
}, funnyMsg = {
de: [ //von [[Benutzer:Revvar/irrenhaus.js]]
['Du hast ', 'neuen Spam', ', den du eh nicht ', 'liest', '.'],
['Da hat wieder so ein ', 'Trottel', ' deine ', 'Disk', ' gespammt.'],
['Reverten ist ', 'ja', ' so ', 'schön', '.'],
['Haaaaloooo, da will ', 'wer', ' mit dir ', 'sprechen', '.'],
['Zufällig hat ', 'jemand', ' den Weg auf deine ', 'Disk', ' gefunden.'],
['', 'Jemand', ' mag ', 'dich', '.'],
['Ein ', 'Troll', ' will mit dir ', 'diskutieren', '.'],
['Hey, da ', 'wartet wer', ' auf ', 'deine Antwort', '!'],
['Schon mal nach deinen ', 'neusten Nachrichten', ' ', 'geschaut', '?'],
['Da ist wohl ', 'jemand', ' sauer auf ', 'dich', '?!'],
['Deine Disk wird gerade ', 'vandaliert', '. Schnell, ', 'revertieren', '!']
]
};
function getFunnyMsg () {
var chain = mw.language.getFallbackLanguageChain(), i, msgs = [];
for (i = 0; i < chain.length; i++) {
if (chain[i] in funnyMsg) {
msgs = funnyMsg[chain[i]];
break;
}
}
if (msgs.length) {
return msgs[Math.floor(msgs.length * Math.random())];
} else {
return getNormalMsg();
}
}
function getNormalMsg () {
var chain = mw.language.getFallbackLanguageChain(), i;
for (i = 0; i < chain.length; i++) {
if (chain[i] in normalMsg) {
return normalMsg[chain[i]];
}
}
return normalMsg.en; //sollte nicht passieren
}
function setMsg () {
var m = mw.user.options.get('userjs-schnark-kackbalken-irr') ? getFunnyMsg() : getNormalMsg();
mw.messages.set({
//ursprüngliche Nachrichten werden hier stark modifiziert, daher neue Namen
'schnark-kackbalken-youhavenewmessages': m[0] + '$2' + m[2] + '$1' + m[4],
'schnark-kackbalken-newmessageslink': m[3],
'schnark-kackbalken-newmessagesdifflink': m[1]
});
}
function getLinks (revId) {
var d = mw.config.get('wgFormattedNamespaces')[3] + ':' + mw.config.get('wgUserName');
return [mw.util.getUrl(d, {redirect: 'no'}), mw.util.getUrl(d, {oldid: revId, diff: 'curr'})];
}
function getNewMessage (revId) {
var l = getLinks(revId);
l[0] = mw.html.element('a', {href: l[0]}, mw.msg('schnark-kackbalken-newmessageslink'));
l[1] = mw.html.element('a', {href: l[1]}, mw.msg('schnark-kackbalken-newmessagesdifflink'));
return mw.msg('schnark-kackbalken-youhavenewmessages', l[0], l[1]);
}
function showNewMessage (revId) {
var html = getNewMessage(revId);
$('#jump-to-nav').before(mw.html.element('div', {'class': 'usermessage'}, new mw.html.Raw(html)));
}
function init () {
var revId;
revId = mw.util.getParamValue('kackbalken') || //zum Testen
mw.config.get('wgUserNewMsgRevisionId');
if (
revId &&
!(
mw.config.get('wgNamespaceNumber') === 3 &&
mw.config.get('wgTitle') === mw.config.get('wgUserName')
)
) {
mw.loader.using('mediawiki.language').then(function () {
setMsg();
$(function () {
showNewMessage(revId);
});
});
}
}
mw.loader.using(['mediawiki.util', 'user.options']).then(init);
})(jQuery, mediaWiki);
//</nowiki>