Utilisateur:Céréales Killer/vector.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.// fonction d'import de page, sur fr, en, ou autre (exemple sur en: importWikiPage('User:Lupin/popups.js', 'en'))
function importWikiPage(page, lng) {
var langue = (lng ? lng : 'fr')
$.getScript('https://' + langue + '.wikipedia.org/w/index.php?title=' + page + '&action=raw&ctype=text/javascript&dontcountme=s');
}
// objets Ajax et cookies pour lecture des messages
importWikiPage('Utilisateur:GôTô/objects.js')
function getArticleName()
{
var strOut = document.title
// case search
if (strOut == "Rechercher - Wikipédia")
return document.getElementById("lsearchbox").value
// case article being modified
strOut = strOut.replace("modification de ", "").replace(" - Modifier", "")
strOut = strOut.replace(" - Prévisualiser", "").replace(" - Wikipédia", "")
return strOut
}
/***************** Lecture de messages ****************/
function getCurrentId(page) {
var li = document.getElementById("t-permalink");
if (li)
return (li.getElementsByTagName("a")[0].href.split("oldid=")[1].split("&")[0]);
}
function getMessages() {
var mois = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
mois["janvier"] = 0; mois["février"] = 1; mois["mars"] = 2; mois["avril"] = 3; mois["mai"] = 4; mois["juin"] = 5; mois["juillet"] = 6; mois["août"] = 7; mois["septembre"] = 8; mois["octobre"] = 9; mois["novembre"] = 10; mois["décembre"] = 11;
var article = getArticleName();
var month = -1;
var year = -1;
if (article.indexOf("Discussion utilisateur:Céréales Killer/") > -1) {
month = mois[article.split("Discussion utilisateur:Céréales Killer/")[1].split(" ")[0]];
year = article.split("Discussion utilisateur:Céréales Killer/")[1].split(" ")[1];
//first case: we are on a talk page of ours: we read and save the ''oldid'' in a cookie
cookies.set("lastViewedMsg" + mois[month], getCurrentId(), 1000*3600*24*30);
}
var dNow = new Date();
var page = encodeURI("Discussion utilisateur:Céréales Killer/").replace(/%20/g, "_") + encodeURI(mois[dNow.getMonth()]) + "_" + dNow.getFullYear() + "||" + encodeURI(mois[dNow.getMonth()]);
//check the page of the current month
if (month != dNow.getMonth() || year != dNow.getFullYear())
checkPageForMessages(page);
var prevMonth = dNow.getMonth() -1;
var prevMonthYear = dNow.getFullYear();
if (prevMonth == -1) {
prevMonth = 11;
prevMonthYear--;
page = page.replace(dNow.getFullYear(), prevMonthYear);
}
page = page.replace(new RegExp(encodeURI(mois[dNow.getMonth()]), "g"), encodeURI(mois[prevMonth]));
//check the page of the previous month
if (month != prevMonth || year != prevMonthYear)
checkPageForMessages(page);
}
function checkPageForMessages(page) {
if (typeof objAJAX === 'undefined') {
return;
}
var ajaxObj = new objAJAX();
ajaxObj.page = page;
ajaxObj.conn.onreadystatechange = function () {
if (ajaxObj.conn.readyState == 4) {
if (ajaxObj.conn.status == 200) {
var lastViewedId = (cookies.get("lastViewedMsg" + decodeURI(ajaxObj.page.split("||")[1])) ? cookies.get("lastViewedMsg" + decodeURI(ajaxObj.page.split("||")[1])) : 0);
var currentId = ajaxObj.conn.responseText.split(ajaxObj.page.split("||")[0] + "&oldid=")[1].split('"')[0];
if (parseInt(currentId, 10) > parseInt(lastViewedId, 10))
alertMessage(ajaxObj.page);
}
}
}
return(ajaxObj.sendRequest("/w/index.php?title=" + page.split("||")[0] + "&limit=1&action=history", "GET", true));
}
function alertMessage(page) {
var div = document.getElementById("nouveauMessage");
if (!div) {
div = document.createElement("div");
div.className = "usermessage";
div.id = "nouveauMessage";
var cont = document.getElementById("content");
cont.insertBefore(div, document.getElementById("bodyContent"));
}
var txt = document.createTextNode("Vous avez de nouveaux messages: ");
var aDiff = document.createElement("a");
aDiff.href = "/w/index.php?title=" + page.split("||")[0] + "&diff=cur";
aDiff.innerHTML = "différences (" + decodeURI(page.split("||")[1]) + ")";
div.appendChild(txt);
div.appendChild(aDiff);
div.appendChild(document.createElement("br"));
}
$(getMessages);
/************** Lecture de messages fin *****************/
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
function OptimizedSuivi()
{
if (document.URL.indexOf("http://fr.wikipedia.org/wiki/Special:Watchlist")==0 || document.URL.indexOf("http://fr.wikipedia.org/w/index.php?title=Special:Watchlist")==0 ){
var allDays = document.getElementsByTagName("ul");
for (i=0; i<allDays.length; i++) {
if (allDays[i].getAttribute("class") == "special") {
var artList = allDays[i].getElementsByTagName("li");
for (j=0; j<artList.length; j++) {
var elem = artList[j];
var aTag = elem.getElementsByTagName("a");
var articleName = aTag[0].getAttribute("title");
var stopWatch = "/w/index.php?title=" + articleName + "&action=unwatch"
var newElement = document.createElement("a");
newElement.setAttribute("href",stopWatch);
var newText = document.createTextNode("stop");
newElement.appendChild(newText);
var newPar = document.createTextNode(") (")
// séparation des cas (nouvel article, ou déjà existant)
if (aTag[0].childNodes[0].data == "diff") {
insertAfter(elem, newPar, aTag[1]);
} else {
insertAfter(elem, newPar, aTag[0]);
}
insertAfter(elem, newElement, newPar);
}
}
}
}
}