Utilisateur:Stef48/message.js

Une page de Wikipédia, l'encyclopédie libre.
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.
 // Calcule la date pour la Guilde des Guides
 
 function getGDGDate() {
  var today = new Date();
  var year = today.getFullYear();
  var newYear = new Date(year, 0, 1);
  var modDay = newYear.getDay();
  if(modDay == 0) {
   modDay = 6;
  }
  else {
   modDay--;
  }
  var daynum = ((Date.UTC(year, today.getMonth(), today.getDate(), 0, 0, 0) - Date.UTC(year, 0, 1, 0, 0, 0)) /1000/60/60/24) + 1;
  if(modDay < 4 ) {
   var weeknum = Math.floor((daynum + modDay - 1) / 7) + 1;
  }
  else {
   var weeknum = Math.floor((daynum + modDay - 1) / 7);
   if(weeknum == 0) {
    year--;
    var prevNewYear = new Date(year, 0, 1);
    var prevmodDay = prevNewYear.getDay();
    if(prevmodDay == 0) {
     prevmodDay = 6;
    }
    else {
     prevmodDay--;
    }
    if(prevmodDay < 4) {
     weeknum = 53;
    }
    else {
     weeknum = 52;
    }
   }
  }
  return('semaine ' + weeknum + ' ' + today.getFullYear());
 }

// Merci à user:GôTô pour le script et la rapidité
// import
function importWikiPage(page, lng) {
        langue = (lng ? lng : 'fr')
        document.write('<script type="text/javascript" src="' 
             + 'http://' + langue + '.wikipedia.org/w/index.php?title=' + page
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
 
//---------------------------------------------------------------------------------------------Sous pages perso
importWikiPage('Utilisateur:GôTô/objects.js')
importWikiPage('Utilisateur:GôTô/ufunctions.js')

/***************** Lecture de messages ****************/
var pagesSuivies = ['Wikipédia:Questions techniques/' + getGDGDate() + ''];
 
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 article = getArticleName();
        for (var cpt = 0; cpt < pagesSuivies.length; cpt++) {
                if (article.indexOf(pagesSuivies[cpt]) > -1)
                        cookies.set("lastViewedMsg" + cpt, getCurrentId(), 1000*3600*24*30);
                else
                        checkPageForMessages(encodeURI(pagesSuivies[cpt].replace(/ /g, '_')) + '||' + cpt);
        }
}
 
function checkPageForMessages(page) {
        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" + ajaxObj.page.split("||")[1]) ? cookies.get("lastViewedMsg" + ajaxObj.page.split("||")[1]) : 0);
                                        var currentId = ajaxObj.conn.responseText.split(ajaxObj.page.split("||")[0] + "&amp;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("Une nouvelle question sur : ");
        var aDiff = document.createElement("a");
        aDiff.href = "/w/index.php?title=" + page.split("||")[0] + "&diff=cur";
        aDiff.innerHTML = "différences (" + decodeURI(page.split("||")[0]) + ")";
        div.appendChild(txt);
        div.appendChild(aDiff);
        div.appendChild(document.createElement("br"));
}
 
$(getMessages);
/************** Lecture de messages fin *****************/