Telerama Ulysses

By Bobo12 Last update Aug 22, 2005 — Installed 253 times.
// ==UserScript==
// @name            Telerama Ulysses
// @include         http://cinema.telerama.fr/
// @description     Ajoute les Ulysses dans la liste des films de la page cinéma du site Télérama.fr
// @exclude       
// ==/UserScript==

function closureFunction(objEnCours, semaineAffichage) {
  var  theUrl, theSrc, xmlhttp;
  theUrl = objEnCours.firstChild.href;
  xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET",theUrl,true);
  xmlhttp.onreadystatechange = function() {
    var imgTrouvees,imgEnCours, divEnCours;
    if (xmlhttp.readyState==4) {
      //On va chercher Ulysse
      imgEnCours=document.createElement("img");
      theSrc=xmlhttp.responseText.match(/\/images\/cine\/(Bien|Passable|Bof|Helas)\.gif/g);
      imgEnCours.setAttribute("src",theSrc);
      imgEnCours.setAttribute("border","0");
      imgEnCours.setAttribute("align","left");
      objEnCours.insertBefore(imgEnCours, objEnCours.firstChild);
      //On va chercher le chapeau
      if(xmlhttp.responseText.indexOf("<chapeau>")!=-1){
        divEnCours=document.createElement("div");
        divEnCours.setAttribute("class","v9");
        divEnCours.setAttribute("style","font-weight:bold;");
        divEncours = divEnCours.appendChild(document.createTextNode(xmlhttp.responseText.match(/\<chapeau>([^<]*)<\/chapeau>/)[1].replace(/\ufffd/g,"é")));
        if (semaineAffichage == "0") {
          objEnCours.insertBefore(divEnCours, objEnCours.firstChild.nextSibling.nextSibling);
        } else {
          objEnCours.insertBefore(divEnCours, objEnCours.firstChild.firstChild);
        } 
      }
      //On va chercher la fiche technique
      if(xmlhttp.responseText.indexOf("<fichetech>")!=-1){
        divEnCours=document.createElement("div");
        divEnCours.setAttribute("class","v9");
        var theText=xmlhttp.responseText.match(/\<fichetech>(.*?)<\/fichetech>/)[1];
        theText=theText.replace(/\ufffd/g,"é");
        theText = theText.substr(0,150)+"...";
        
        divEnCours.innerHTML=theText;
        
         if (semaineAffichage == "0") {
          objEnCours.firstChild.nextSibling.removeChild(objEnCours.firstChild.nextSibling.lastChild);
          objEnCours.insertBefore(divEnCours, objEnCours.firstChild.nextSibling.nextSibling);
        } else {
          objEnCours.insertBefore(divEnCours, objEnCours.firstChild.firstChild);
        }
      }
    }
  }
  xmlhttp.send(null);
}


var objTrouves, listeFilms;
//On parse les films de la semaine

objTrouves = document.evaluate(
    '//td[@class="cine"]',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
var dernierFilm = objTrouves.snapshotItem(objTrouves.snapshotLength-1);

//On parse aussi la liste de tous les films pour avoir ceux de la semaine précédente
listeFilms = document.getElementsByName("films_sem")[0];
var theDiv=document.createElement("div");
var theContent;
var semaine=0;
//On élimine ceux de la semaine et les séparateurs
for (var i = 0; i<listeFilms.childNodes.length; i++) {
  if (listeFilms.childNodes[i].nodeName.toLowerCase() == "option") {
    if (listeFilms.childNodes[i].firstChild.data.indexOf("la semaine dern") != -1) semaine=1;
    if ((listeFilms.childNodes[i].value.indexOf("#") == -1) && (listeFilms.childNodes[i].firstChild.data.indexOf("--") == -1) && semaine == 1) {
      theContent=document.createElement("a");
      theContent.appendChild(document.createTextNode(listeFilms.childNodes[i].firstChild.data));
      theContent.setAttribute("href", listeFilms.childNodes[i].value);
      theContent.setAttribute("style", "font-weight:bold;color:#990000;");
      theTempDiv=document.createElement("div");
      theTempDiv.setAttribute("class", "cine a15");
      theTempDiv.setAttribute("style", "height:70px;display:block;");
      theTempDiv.appendChild(theContent);
      theDiv.appendChild(theTempDiv);
    }
  }
}

//On ajoute la liste des films de la semaine d'avant
dernierFilm.appendChild(document.createElement("br"));
theContent=document.createElement("div");
theContent.setAttribute("style","font-family:Arial;font-weight:bold;size:15px;");
theContent.appendChild(document.createTextNode("Les films de la semaine dernière"));
dernierFilm.appendChild(theContent);
dernierFilm.appendChild(document.createElement("br"));
dernierFilm.appendChild(theDiv);

//pour tous les films, on va chercher le petit Ulysse
for (var i = 0; i < objTrouves.snapshotLength; i++) closureFunction(objTrouves.snapshotItem(i), 0);
for (var i = 0; i < dernierFilm.lastChild.childNodes.length; i++) closureFunction(dernierFilm.lastChild.childNodes[i], 1);