From 360b03e976f53bd285b4f88e41bedf72e644898b Mon Sep 17 00:00:00 2001 From: pifou Date: Wed, 27 Jun 2007 22:51:54 +0000 Subject: [PATCH] =?utf8?q?ADD=20Fin=20de=20l'extension=20firefox,=20il=20r?= =?utf8?q?este=20cependant=20=C3=A0=20la=20tester=20compl=C3=A9tement=20FI?= =?utf8?q?X=20Probl=C3=A8me=20lorsque=20un=20synopsis=20n'=C3=A9tait=20pas?= =?utf8?q?=20trouv=C3=A9=20dans=20la=20fiche=20allocine?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: svn://euphorik.ch/pompage@31 02bbb61a-6d21-0410-aba0-cb053bdfd66a --- css/yopyop.css | 3 + js/yopyop.js | 10 ++- mise_en_prod.rb | 4 +- src/film.rb | 11 +-- xpi/chrome/content/prefs.js | 44 ++++++++++++ xpi/chrome/content/settings.js | 98 +++++++++++++++++++++++-- xpi/chrome/content/settings.xul | 35 ++++----- xpi/components/handleProtocol.js | 114 +++++++++++++++++++++++++----- xpi/defaults/preferences/prefs.js | 3 +- xpi/install.rdf | 4 +- xsl/yopyop.xsl | 2 +- 11 files changed, 278 insertions(+), 50 deletions(-) create mode 100644 xpi/chrome/content/prefs.js diff --git a/css/yopyop.css b/css/yopyop.css index ac3501b..701de9b 100644 --- a/css/yopyop.css +++ b/css/yopyop.css @@ -300,4 +300,7 @@ div.pied p { font-size: 8pt; padding-left: 10px; } +div.pied a { + margin-left: 10px; +} diff --git a/js/yopyop.js b/js/yopyop.js index 85efb3d..6e44227 100644 --- a/js/yopyop.js +++ b/js/yopyop.js @@ -76,10 +76,15 @@ derniereRecherche.setMinutes(derniereRecherche.getMinutes() - 1); */ function doRecherche() { - // empèche de faire deux recherches successive en moins de 500ms + // empèche de faire deux recherches successive en moins de 800ms var now = new Date(); - if (now.getTime() < derniereRecherche.getTime() + 500) + if (now.getTime() < derniereRecherche.getTime() + 800) + { + // si une recherche à était demandé mais n'a pu aboutir alors on la refait dans certain temps + setTimeout("doRecherche()", 810 - (now.getTime() - derniereRecherche.getTime())); return; + } + derniereRecherche = now; var afficherTout = false; // si aucun choix n'est fait pour la recherche on affiche tout @@ -133,6 +138,7 @@ function doRecherche() // mise à jour de l'affichage du nombre de film total/affiché document.getElementById("nbFilms").textContent = nbFilmAffiche + " / " + nbFilm + " film" + (nbFilm > 1 ? "s" : "") + } /** diff --git a/mise_en_prod.rb b/mise_en_prod.rb index 9b4d23e..a6b804c 100644 --- a/mise_en_prod.rb +++ b/mise_en_prod.rb @@ -8,7 +8,7 @@ dest = "Z:\\var\\www\\divx" dest = $*[0] if $*.length > 1 # pour windows -['xml', 'xsl', 'js', 'css', 'img'].each{|rep| +['xml', 'xsl', 'js', 'css', 'img', 'xpi'].each{|rep| `mkdir #{dest}\\#{rep}` `xcopy /Y /F #{rep} #{dest}\\#{rep}` -} \ No newline at end of file +} diff --git a/src/film.rb b/src/film.rb index 21c27cb..b8b3e07 100644 --- a/src/film.rb +++ b/src/film.rb @@ -1,4 +1,4 @@ -# Attention, le but de ce fichier n'est pas d'être le plus clair possible ^-^´´ +# Attention, le but de ce fichier n'est pas d'être le plus clair possible ^-^´´ require 'rexml/document' require 'net/http' @@ -440,9 +440,12 @@ private # Synopsis /Synopsis.*?

(.*?)<\/h4>/m =~ ficheHtml - @synopsis = $1 unless $1.nil? - @synopsis.gsub!(/|/, "\n") - @synopsis.virerBalisesHTML! + unless $1.nil + { + @synopsis = $1 + @synopsis.gsub!(/|/, "\n") + @synopsis.virerBalisesHTML! + } # Budget /Budget<\/b> : (.+?) millions d'euros<\/h4>/ =~ ficheHtml diff --git a/xpi/chrome/content/prefs.js b/xpi/chrome/content/prefs.js new file mode 100644 index 0000000..5697167 --- /dev/null +++ b/xpi/chrome/content/prefs.js @@ -0,0 +1,44 @@ +function divxlistGetPreferencesService() +{ + return Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(""); +} + +function divxlistGetRoot() +{ + return divxlistGetPreferencesService().getCharPref("divxlist.root"); +} +function divxlistSetRoot(root) +{ + return divxlistGetPreferencesService().setCharPref("divxlist.root", root); +} + +function divxlistGetCommandes() +{ + var commandes = divxlistGetPreferencesService().getCharPref("divxlist.commandes"); + var regex = /'[^']*'/g + var res = commandes.match(regex); + var commandesTab = new Array() + if (res != null) + for(var i = 0; i < res.length; i += 2) + { + var motifCommande = new Array(2); + motifCommande[0] = res[i].slice(1, res[i].length-1) + motifCommande[1] = res[i+1].slice(1, res[i+1].length-1) + commandesTab.push(motifCommande); + } + return commandesTab; +} + +function divxlistSetCommandes(commandes) +{ + var commandesStr = "{" + for (var i = 0; i < commandes.length; i++) + { + if (i != 0) commandesStr += ", " + commandesStr += "'" + commandes[i][0] + "' => " + commandesStr += "'" + commandes[i][1] + "'" + } + commandesStr += "}" + + return divxlistGetPreferencesService().setCharPref("divxlist.commandes", commandesStr); +} \ No newline at end of file diff --git a/xpi/chrome/content/settings.js b/xpi/chrome/content/settings.js index 9eab518..c7139a0 100644 --- a/xpi/chrome/content/settings.js +++ b/xpi/chrome/content/settings.js @@ -1,13 +1,103 @@ -function doAnnuler(event) +/*** Evénements ***/ +function divxlistOnOk() { + divxlistSauverParametres(); } -function doOK(event) +function divxlistOnLoad() { + divxlistChargerParametres(); } +function divxlistChargerParametres() +{ + var root = divxlistGetRoot(); + document.getElementById("dossierDivx").value = root; + + var commandes = divxlistGetCommandes(); + + var listeAppli = document.getElementById("listeAppli"); + + for (var i = 0; i < commandes.length; i += 1) + { + var item = listeAppli.appendItem("", "") + var textMotif = document.createElement("textbox") + textMotif.setAttribute("value",commandes[i][0]) + item.appendChild(textMotif); + var textCommande = document.createElement("textbox") + textCommande.setAttribute("value",commandes[i][1]) + item.appendChild(textCommande); + } +} + +function divxlistSauverParametres() +{ + var listeAppli = document.getElementById("listeAppli"); + var items = listeAppli.childNodes; + + var commandes = new Array(); + + for (var i = 2; i < items.length; i++) + { + var motifCommande = new Array(2); + motifCommande[0] = items[i].firstChild.value + motifCommande[1] = items[i].firstChild.nextSibling.value + commandes.push(motifCommande) + } + + divxlistSetCommandes(commandes); + divxlistSetRoot(document.getElementById("dossierDivx").value); +} +function divxlistAjouterCommande() +{ + var listeAppli = document.getElementById("listeAppli"); + var ligne = document.createElement("listitem"); + ligne.appendChild(document.createElement("textbox")); + ligne.appendChild(document.createElement("textbox")); + listeAppli.appendChild(ligne); +} + +function divxlistEnleverCommande() +{ + var listeAppli = document.getElementById("listeAppli"); + var ligne = listeAppli.selectedItem; + ligne.parentNode.removeChild(ligne); +} + +function divxlistMonterCommande() +{ + var listeAppli = document.getElementById("listeAppli"); + var ligne = listeAppli.selectedItem; + var motif = ligne.firstChild.value + var commande = ligne.firstChild.nextSibling.value + var ligneAvant = ligne.previousSibling + if (ligneAvant.nodeName == 'listitem') + { + ligneAvant.parentNode.insertBefore(ligne, ligneAvant) + } + ligne.firstChild.value = motif; + ligne.firstChild.nextSibling.value = commande +} + +function divxlistDescendreCommande() +{ + var listeAppli = document.getElementById("listeAppli"); + var ligne = listeAppli.selectedItem; + var motif = ligne.firstChild.value + var commande = ligne.firstChild.nextSibling.value + var ligneApres = ligne.nextSibling.nextSibling + if (ligneApres == null) + ligne.parentNode.appendChild(ligne) + else + ligneApres.parentNode.insertBefore(ligne, ligneApres) + ligne.firstChild.value = motif; + ligne.firstChild.nextSibling.value = commande +} // Les événements -$(hbox > button[@label=Annuler]).addEventListener('command', doAnnuler, true); -$(hbox > button[@label=OK]).addEventListener('command', doOK, true); \ No newline at end of file +//$("dialog").addEventListener('load', onLoad, true); +//$("dialog").bind("load", divxlistOnLoad); +//$(hbox > button[@label=OK]).addEventListener('command', onOK, true); +//var poulpe = document.getElementById("yopyop-settings"); +//.addEventListener('load', divxlistOnLoad, true);yxc diff --git a/xpi/chrome/content/settings.xul b/xpi/chrome/content/settings.xul index 1eeca3e..3689b8f 100644 --- a/xpi/chrome/content/settings.xul +++ b/xpi/chrome/content/settings.xul @@ -1,17 +1,29 @@ -