ADD Ajout de la possibilité de mettre à jour des champs de la bd
authorpifou <pifou@02bbb61a-6d21-0410-aba0-cb053bdfd66a>
Tue, 10 Jul 2007 16:40:04 +0000 (16:40 +0000)
committerpifou <pifou@02bbb61a-6d21-0410-aba0-cb053bdfd66a>
Tue, 10 Jul 2007 16:40:04 +0000 (16:40 +0000)
git-svn-id: svn://euphorik.ch/pompage@51 02bbb61a-6d21-0410-aba0-cb053bdfd66a

img/affichette_test/14.jpg
src/basemodule.rb
src/constantes.rb
src/film.rb
src/films.rb
src/modules/allocine.rb
src/yopyop.rb
update.bat [new file with mode: 0644]
update_test.bat [new file with mode: 0644]
xml/test.xml

index ac906f1..be20dd7 100644 (file)
Binary files a/img/affichette_test/14.jpg and b/img/affichette_test/14.jpg differ
index e67a729..0cd132e 100644 (file)
@@ -1,3 +1,4 @@
+# coding: utf-8\r
 \r
 class Basemodule   \r
    # Retourne un Hash contenant les ids (de allocine) trouvés indexés par une chaine.\r
@@ -12,11 +13,26 @@ class Basemodule
    \r
    # Charge toutes les informations d'un films à partir de son id.\r
    # p1 : l'id de allocine\r
-   def load(id)\r
+   def load(id, film)\r
+      raise\r
+   end   \r
+   \r
+   # Charge toutes les informations d'un films à partir d'un url.\r
+   # p1 : l'id de allocine\r
+   def loadURL(url, film)\r
       raise\r
    end   \r
     \r
    # appelé lorsque le module n'est plus utile (permet de libérer des ressource par exemple).\r
    def finish\r
    end\r
+   \r
+   def setChamp(c)\r
+      @champ = c\r
+   end\r
+   \r
+   def take?(champ)\r
+      return true if !defined? @champ\r
+      return champ.match(Regexp::new(@champ, true)) != nil\r
+   end\r
 end
\ No newline at end of file
index 7642ed1..9b0a80c 100644 (file)
@@ -19,4 +19,13 @@ LOAD_DATA = true
 NB_CONN_MAX = 20\r
 \r
 # une aide pour l'utilisateur\r
-USAGE =  "1. USAGE : yopyop.rb -x <xml file> [-d <directory>] [-m <module>] [-a <dir affichettes>]\r\n2. OU    : yopyop.rb -p -x <xml file> -a <dir affichettes>"\r
+USAGE =  <<USAGECHAINE\r
+1. USAGE : yopyop.rb -x <xml file> [-u champ] [-d <directory>] [-m <module>] [-a <dir affichettes>]\r
+2. OU    : yopyop.rb -p -x <xml file> -a <dir affichettes>\r
+ -x : le fichier xml, si il n'existe pas, il est créé.\r
+ -u : mise à jour (update) des films dans la BD. 'champ' est une expression régulière représentant un ou plusieurs champs.\r
+ -d : le répertoire dans lequel se trouvent les films.\r
+ -m : le module à utiliser pour le pompage. Défaut = 'Allocine'. Voir le repertoire /src/modules/\r
+ -a : le repertoire dans lequel sont stocké les images (affichettes).\r
+ -p : Efface les images qui n'ont pas de correspondance dans la BD (purge).\r
+USAGECHAINE\r
index 834ca26..b070abb 100644 (file)
@@ -77,6 +77,7 @@ class Film
            puts "#{i}. #{n}"\r
            i += 1\r
          }\r
+         puts "______"\r
          puts "A. Passer et l'ajouter"\r
          puts "B. Ignorer"\r
          puts "C. Tout ignorer"\r
@@ -144,6 +145,13 @@ class Film
       self\r
    end\r
    \r
+   # Met à jour un ou plusieurs champs correspondant à 'champ'.\r
+   def update(champ)\r
+      return if @url == nil || @url == ""\r
+      @mod.setChamp(champ)\r
+      @mod.loadURL(@url, self)\r
+   end\r
+   \r
    # Renvoie un film sous la forme d'un élément XML .\r
    # ret [REXML::Element] : un element xml <film>\r
    def getXml\r
index 7d9c17e..4eff4e8 100644 (file)
@@ -103,6 +103,14 @@ class Films
       Dir::chdir(repPrecedant)      \r
    end\r
    \r
+   # Mise à jour des films dans la BD.\r
+   # p1 string : un motif Regex correspondant à un ou plusieurs champs\r
+   def update(champ)\r
+      @films.each{|t, f|\r
+         f.update(champ)\r
+      }\r
+   end\r
+   \r
    # Sauve les films dans un fichier XML\r
    def sauverFilms\r
       # le document\r
@@ -171,6 +179,9 @@ class Films
          acteurs.each{|e|\r
             film.acteurs << Personne::ajouter(e.get_text.value)\r
          }\r
+         realisateurs.each{|e|\r
+            film.realisateurs << Personne::ajouter(e.get_text.value)\r
+         }\r
          pays.each{|e|\r
             film.pays << Pays::ajouter(e.get_text.value)\r
          }\r
@@ -213,14 +224,14 @@ class Films
       \r
       if @films.has_key?(film.titre)\r
          if !@filmsFichier.has_key?(film.fichiers[0])\r
-            puts "[i] movie #{film.titre} has a another file part : #{film.fichiers[0]}"\r
+            puts "[i] Le film #{film.titre} possède une autre partie : #{film.fichiers[0]}"\r
             @films[film.titre].addFichier(film.fichiers[0])\r
             @filmsFichier[film.fichiers[0]] = @films[film.titre]                     \r
          else\r
-            puts "[!] Duplicate movie : #{film.titre} (#{film.fichiers[0]})"\r
+            puts "[!] Film déjà dans la BD : #{film.titre} (#{film.fichiers[0]})"\r
          end\r
       else\r
-         puts "[i] movie added : #{film.titre} (#{film.fichiers[0]})"\r
+         puts "[i] Film ajouté : #{film.titre} (#{film.fichiers[0]})"\r
          @films[film.titre] = film\r
          @filmsFichier[film.fichiers[0]] = film\r
       end\r
@@ -246,7 +257,7 @@ class Films
                         \r
             # on skip si le film est déjà dans la BD\r
             if film = @filmsFichier[fichier]\r
-               puts "[i] Already exists in DB : #{film.titre} (#{fichier})"\r
+               puts "[!] Film déjà dans la BD : #{film.titre} (#{film.fichiers[0]})"\r
                next\r
             end\r
              \r
index 23a26b8..5a4e759 100644 (file)
@@ -20,7 +20,6 @@ module Net
    end\r
 end\r
 \r
-\r
 # un module d'importation pour le site "www.allocine.fr"\r
 class Allocine  < Basemodule\r
    \r
@@ -28,7 +27,7 @@ class Allocine  < Basemodule
       begin\r
          @connexion = Net::HTTP::new('www.allocine.fr').start if @connexion == nil || !@connexion.started?\r
       rescue \r
-         Puts "Impossible de se connecter à Allocine. Retry.."\r
+         Puts "[!] Impossible de se connecter à Allocine. Retry.."\r
          retry\r
       end\r
    end\r
@@ -80,11 +79,20 @@ class Allocine  < Basemodule
    \r
    # Voir le parent.\r
    def load(id, film)   \r
+      loadPath("/film/fichefilm_gen_cfilm=#{id}.html")\r
+   end\r
+   \r
+   def loadURL(url, film)\r
+      loadPath(URI.parse(url).path, film)\r
+   end\r
+   \r
+   # Voir le parent.\r
+   def loadPath(path, film)\r
       createConnexion\r
 \r
       html = nil\r
       begin\r
-         html = @connexion.get("/film/fichefilm_gen_cfilm=#{id}.html").body \r
+         html = @connexion.get(path).body \r
       rescue Exception => e\r
          p e\r
          puts "[!] Erreur lors du chargement de #{film.fichiers[0]}, retry.."\r
@@ -92,92 +100,119 @@ class Allocine  < Basemodule
          createConnexion\r
          retry\r
       end\r
-         \r
-      /<img src="(.*?)" border="0" alt="" class="affichette" \/>/ =~ html\r
-      unless $1.nil?\r
-         @threadImage = Thread::start($1){|imageUrl|\r
-            nbRetry = 0\r
-            begin\r
-               imageUrlParsed = URI.parse(imageUrl)               \r
-               connexionImage = Net::HTTP::new(imageUrlParsed.host).start\r
-               image = connexionImage.get(imageUrlParsed.path).body\r
-               f = File::new($repBase + "/" + $repAffichette + film.id.to_s + ".jpg", 'w').binmode\r
-               f.write(image)\r
-               f.close\r
-               connexionImage.finish\r
-            rescue Exception => e\r
-               puts e.message\r
-               puts e.backtrace    \r
-               puts "[!] Erreur lors du chargement de l'image '#{imageUrl}', retry.."        \r
-               retry if (nbRetry += 1) < 5               \r
-            end\r
-         }\r
-      end\r
-\r
+      \r
+      puts "Pompage de #{film.titre} (#{film.fichiers[0]}) ..."\r
+      \r
       #convertit le code latin-1 en UTF8      \r
       html = Iconv.iconv("UTF-8", "ISO-8859-1", html)[0]\r
+      \r
+      if take?("image")\r
+         /<img src="(.*?)" border="0" alt="" class="affichette" \/>/ =~ html\r
+         unless $1.nil?\r
+            @threadImage = Thread::start($1){|imageUrl|\r
+               nbRetry = 0\r
+               begin\r
+                  imageUrlParsed = URI.parse(imageUrl)               \r
+                  connexionImage = Net::HTTP::new(imageUrlParsed.host).start\r
+                  image = connexionImage.get(imageUrlParsed.path).body\r
+                  f = File::new($repBase + "/" + $repAffichette + film.id.to_s + ".jpg", 'w').binmode\r
+                  f.write(image)\r
+                  f.close\r
+                  connexionImage.finish\r
+               rescue Exception => e\r
+                  puts e.message\r
+                  puts e.backtrace    \r
+                  puts "[!] Erreur lors du chargement de l'image '#{imageUrl}', retry.."        \r
+                  retry if (nbRetry += 1) < 5               \r
+               end\r
+            }\r
+         end\r
+      end\r
+\r
       #url\r
-      film.url = "http://www.allocine.fr/film/fichefilm_gen_cfilm=#{id}.html"\r
-      \r
-      # Titre\r
-      /<title>(.*?)<\/title>/ =~ html\r
-      film.titre = $1 unless $1.nil?\r
-      \r
-      puts "Movie found : #{film.titre} (#{film.fichiers[0]})"\r
-      \r
-      # Année\r
-      /<h4>Année de production : (\d+)<\/h4>/ =~ html\r
-      film.annee = $1 unless $1.nil?\r
-      \r
-      # Réalisateurs\r
-      /<h4>Réalisé par(.*?)<\/h4>/ =~ html\r
-      $1.scan(/\s*<a class="link1" href=".*?">(.*?)<\/a>\s*/m){|a|\r
-         film.realisateurs << Personne::ajouter(a[0]) unless a[0].nil?\r
-      } unless $1.nil?\r
-      \r
-      # Acteurs\r
-      /<h4>Avec(.*?)<\/h4>/ =~ html\r
-      $1.scan(/\s*<a class="link1" href="\/personne\/fichepersonne_gen_cpersonne=\d+\.html">(.+?)<\/a>\s*/m){|a|\r
-         film.acteurs << Personne::ajouter(a[0]) unless a[0].nil? \r
-      } unless $1.nil? \r
-                \r
-      # Pays\r
-      /<h4>Film (.*?)\.&nbsp;<\/h4>/ =~ html\r
-      $1.split(',').each{|pays|\r
-         film.pays << Pays::ajouter(pays) unless pays.nil?\r
-      } unless $1.nil? \r
-      \r
-      # Duree (capture des heures et des minutes séparement vue que c'est le bordel sur allocine\r
-      /<h4>Durée :(?:.*?)(\d+)h/ =~ html\r
-      heure = $1.nil? ? 0 : $1.to_i\r
-      \r
-      /<h4>Durée :(?:.*?)(\d+)min/ =~ html\r
-      min = $1.nil? ? 0 : $1.to_i\r
-         \r
-      film.duree = heure * 60 + min\r
-      \r
-      # Critiques presse et spectateur\r
-      /Presse.*etoile_([012345]).*Spectateurs.*etoile_([012345])"/m =~ html\r
-      film.critiquePresse = $1 unless $1.nil?\r
-      film.critiqueSpectateur = $2 unless $2.nil?\r
-      \r
-      # Genre\r
-      /<h4>Genre : (.*?)<\/h4>/ =~ html\r
-      $1.scan(/<a href="\/film\/alaffiche_genre_gen_genre=.*?" class="link1">(.+?)<\/a>/m){|g|\r
-         film.genres << Genre::ajouter(g[0]) unless g[0].nil?\r
-      } unless $1.nil?     \r
-      \r
-      # Synopsis            \r
-      /Synopsis.*?<h4>(.*?)<\/h4>/m =~ html\r
-      unless $1.nil?\r
-         film.synopsis = $1\r
-         film.synopsis.gsub!(/<br\s*\/>|<br\s*>/, "\n")\r
-         film.synopsis.virerBalisesHTML!\r
-      end\r
-      \r
-      # Budget       \r
-      /Budget<\/b> : (.+?) millions d'euros<\/h4>/ =~ html\r
-      film.budget = $1 unless $1.nil?\r
+      if take?("url")\r
+         film.url = "http://www.allocine.fr" + path\r
+      end\r
+      \r
+      if take?("titre")\r
+         # Titre\r
+         /<title>(.*?)<\/title>/ =~ html\r
+         film.titre = $1 unless $1.nil?\r
+      end\r
+      \r
+      if take?("annee")         \r
+         # Année\r
+         /<h4>Année de production : (\d+)<\/h4>/ =~ html\r
+         film.annee = $1 unless $1.nil?\r
+      end\r
+      \r
+      if take?("realisateurs")\r
+         # Réalisateurs\r
+         film.realisateurs.clear\r
+         /<h4>Réalisé par(.*?)<\/h4>/ =~ html\r
+         $1.scan(/\s*<a class="link1" href=".*?">(.*?)<\/a>\s*/m){|a|\r
+            film.realisateurs << Personne::ajouter(a[0]) unless a[0].nil?\r
+         } unless $1.nil?\r
+      end\r
+      \r
+      if take?("acteurs")\r
+         # Acteurs\r
+         film.acteurs.clear\r
+         /<h4>Avec(.*?)<\/h4>/ =~ html\r
+         $1.scan(/\s*<a class="link1" href="\/personne\/fichepersonne_gen_cpersonne=\d+\.html">(.+?)<\/a>\s*/m){|a|\r
+            film.acteurs << Personne::ajouter(a[0]) unless a[0].nil? \r
+         } unless $1.nil? \r
+      end\r
+           \r
+      if take?("pays")\r
+         # Pays\r
+         film.pays.clear\r
+         /<h4>Film (.*?)\.&nbsp;<\/h4>/ =~ html\r
+         $1.split(',').each{|pays|\r
+            film.pays << Pays::ajouter(pays) unless pays.nil?\r
+         } unless $1.nil? \r
+      end\r
+      \r
+      if take?("duree")\r
+         # Duree (capture des heures et des minutes séparement vue que c'est le bordel sur allocine\r
+         /<h4>Durée :(?:.*?)(\d+)h/ =~ html\r
+         heure = $1.nil? ? 0 : $1.to_i      \r
+         /<h4>Durée :(?:.*?)(\d+)min/ =~ html\r
+         min = $1.nil? ? 0 : $1.to_i         \r
+         film.duree = heure * 60 + min\r
+      end\r
+      \r
+      if take?("critiquenote")\r
+         # Critiques presse et spectateur\r
+         /Presse.*etoile_([012345]).*Spectateurs.*etoile_([012345])"/m =~ html\r
+         film.critiquePresse = $1 unless $1.nil?\r
+         film.critiqueSpectateur = $2 unless $2.nil?\r
+      end\r
+      \r
+      if take?("genre")\r
+         # Genre\r
+         film.genres.clear\r
+         /<h4>Genre : (.*?)<\/h4>/ =~ html\r
+         $1.scan(/<a href="\/film\/alaffiche_genre_gen_genre=.*?" class="link1">(.+?)<\/a>/m){|g|\r
+            film.genres << Genre::ajouter(g[0]) unless g[0].nil?\r
+         } unless $1.nil?     \r
+      end\r
+      \r
+      if take?("synopsis")\r
+         # Synopsis            \r
+         /Synopsis.*?<h4>(.*?)<\/h4>/m =~ html\r
+         unless $1.nil?\r
+            film.synopsis = $1\r
+            film.synopsis.gsub!(/<br\s*\/>|<br\s*>/, "\n")\r
+            film.synopsis.virerBalisesHTML!\r
+         end\r
+      end\r
+      \r
+      if take?("budget")\r
+         # Budget       \r
+         /Budget<\/b> : (.+?) millions d'euros<\/h4>/ =~ html\r
+         film.budget = $1 unless $1.nil?\r
+      end\r
       \r
       fermerConnexion\r
    end   \r
index 47da578..f99b39d 100644 (file)
@@ -26,6 +26,7 @@ $repFilms = '.'
 $repAffichette = '../img/affichette/'\r
 mod = 'Allocine'\r
 purgeImages = false\r
+update = nil\r
 \r
 aPrec = ''\r
 $*.each{|a|\r
@@ -43,6 +44,8 @@ $*.each{|a|
          mod = a\r
       when '-a'\r
          $repAffichette = a\r
+      when '-u'\r
+         update = a\r
    end      \r
    aPrec = a\r
 }\r
@@ -71,9 +74,13 @@ films = Films::new($xmlFile, Module.class_eval(mod))
 if purgeImages\r
    Images.nettoyer(films, $repAffichette)\r
 else\r
-   # parcours le dossier donné et recherche les infos sur le net\r
-   films.pomper($repFilms)\r
-\r
+   if update == nil\r
+      # parcours le dossier donné et recherche les infos sur le net\r
+      films.pomper($repFilms)\r
+   else\r
+      films.update(update)\r
+   end\r
+   \r
    # écrit le fichier XML\r
    films.sauverFilms()\r
 end\r
diff --git a/update.bat b/update.bat
new file mode 100644 (file)
index 0000000..6c51bd3
--- /dev/null
@@ -0,0 +1,14 @@
+@echo off\r
+\r
+if "%1" == "" goto plop\r
+\r
+cd src\r
+C:\ruby\bin\ruby yopyop.rb -u %1 -x ../xml/divx.xml\r
+cd ..\r
+\r
+goto fin\r
+\r
+:plop\r
+echo Il faut donner le nom d'un champ comme argument (regexp). * correspond à tous les champs\r
+\r
+:fin
\ No newline at end of file
diff --git a/update_test.bat b/update_test.bat
new file mode 100644 (file)
index 0000000..5c73465
--- /dev/null
@@ -0,0 +1,14 @@
+@echo off\r
+\r
+if "%1" == "" goto plop\r
+\r
+cd src\r
+C:\ruby\bin\ruby yopyop.rb -u %1 -x ../xml/test.xml\r
+cd ..\r
+\r
+goto fin\r
+\r
+:plop\r
+echo Il faut donner le nom d'un champ comme argument (regexp). * correspond à tous les champs\r
+\r
+:fin
\ No newline at end of file
index 8b710cc..f1bfe95 100644 (file)
@@ -1,71 +1,73 @@
 <?xml version='1.0' encoding='UTF-8'?>\r
 <?xml-stylesheet type="text/xsl" href="../xsl/yopyop.xsl"?>\r
 <filmographie>\r
-  <film id='9'>\r
+  <film id='19'>\r
     <fichiers>\r
-      <fichier>Rocky [x264 Aac] [Fr Eng] [Fr Eng].mkv</fichier>\r
+      <fichier>Big Boss.avi</fichier>\r
     </fichiers>\r
-    <titre>Rocky Balboa</titre>\r
-    <annee>2006</annee>\r
+    <titre>Big boss</titre>\r
+    <annee>1971</annee>\r
     <realisateurs>\r
-      <realisateur>Sylvester Stallone</realisateur>\r
+      <realisateur>Lo Wei</realisateur>\r
     </realisateurs>\r
     <acteurs>\r
-      <acteur>Sylvester Stallone</acteur>\r
-      <acteur>Burt Young</acteur>\r
-      <acteur>Antonio Tarver</acteur>\r
+      <acteur>Bruce Lee</acteur>\r
+      <acteur>James Tien</acteur>\r
+      <acteur>Yin-Chieh Han</acteur>\r
     </acteurs>\r
     <lespays>\r
-      <pays>américain</pays>\r
+      <pays>hong-kongais</pays>\r
     </lespays>\r
-    <duree>105</duree>\r
-    <critiquePresse>4</critiquePresse>\r
-    <critiqueSpectateur>3</critiqueSpectateur>\r
+    <duree>94</duree>\r
+    <critiquePresse/>\r
+    <critiqueSpectateur/>\r
     <genres>\r
       <genre>Drame</genre>\r
+      <genre>Divers</genre>\r
       <genre>Action</genre>\r
+      <genre>Drame</genre>\r
+      <genre>Arts Martiaux</genre>\r
     </genres>\r
     <synopsis>\r
-      <p>Rocky Balboa, le légendaire boxeur, a depuis longtemps quitté le ring. De ses succès, il ne reste plus que des histoires qu&apos;il raconte aux clients de son restaurant. La mort de son épouse lui pèse chaque jour et son fils ne vient jamais le voir.</p>\r
-      <p>Le champion d&apos;aujourd&apos;hui s&apos;appelle Mason Dixon, et tout le monde s&apos;accorde à le définir comme un tueur sans élégance ni coeur. Alors que les promoteurs lui cherchent désespérément un adversaire à sa taille, la légende de Rocky refait surface. L&apos;idée d&apos;opposer deux écoles, deux époques et deux titans aussi différents enflamme tout le monde. Pour Balboa, c&apos;est l&apos;occasion de ranimer les braises d&apos;une passion qui ne l&apos;a jamais quitté. L&apos;esprit d&apos;un champion ne meurt jamais...</p>\r
+      <p>Un ouvrier venant de la campagne se révolte contre la milice engagée par son patron pour briser une grève.</p>\r
     </synopsis>\r
     <budget unite='euro'/>\r
-    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=109061.html</url>\r
+    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=53367.html</url>\r
   </film>\r
-  <film id='5'>\r
+  <film id='18'>\r
     <fichiers>\r
-      <fichier>Big Boss.avi</fichier>\r
+      <fichier>Ben Hur [Rv9 Aac] [Fr Eng] [Fr Eng Dut] [XCT] [2].mkv</fichier>\r
+      <fichier>Ben Hur [Rv9 Aac] [Fr Eng] [Fr Eng Dut] [XCT] [1].mkv</fichier>\r
+      <fichier>test/Ben Hur &amp;.mkv</fichier>\r
     </fichiers>\r
-    <titre>Big boss</titre>\r
-    <annee>1971</annee>\r
+    <titre>Ben-Hur</titre>\r
+    <annee>1959</annee>\r
     <realisateurs>\r
-      <realisateur>Lo Wei</realisateur>\r
+      <realisateur>William Wyler</realisateur>\r
     </realisateurs>\r
     <acteurs>\r
-      <acteur>Bruce Lee</acteur>\r
-      <acteur>James Tien</acteur>\r
-      <acteur>Yin-Chieh Han</acteur>\r
+      <acteur>Charlton Heston</acteur>\r
+      <acteur>Stephen Boyd</acteur>\r
+      <acteur>Jack Hawkins</acteur>\r
     </acteurs>\r
     <lespays>\r
-      <pays>hong-kongais</pays>\r
+      <pays>américain</pays>\r
     </lespays>\r
-    <duree>94</duree>\r
+    <duree>212</duree>\r
     <critiquePresse/>\r
     <critiqueSpectateur/>\r
     <genres>\r
-      <genre>Drame</genre>\r
-      <genre>Arts Martiaux</genre>\r
-      <genre>Divers</genre>\r
-      <genre>Action</genre>\r
+      <genre>Péplum</genre>\r
       <genre>Drame</genre>\r
     </genres>\r
     <synopsis>\r
-      <p>Un ouvrier venant de la campagne se révolte contre la milice engagée par son patron pour briser une grève.</p>\r
+      <p>Judas Ben-Hur, prince de Judée, retrouve son ami d&apos;enfance Messala, venu prendre la tête de la garnison de Jérusalem. Mais leur amitié ne peut résister à leurs caractères différents.</p>\r
+      <p>Alors qu&apos;une pierre tombe du balcon de la maison familiale de Ben-Hur, manquant de tuer le gouverneur qui paradait plus bas, Messala trahit son ami qu&apos;il sait innocent en l&apos;envoyant aux galères et en jetant en prison sa mère et sa soeur. Ben-Hur jure alors de reconquérir sa liberté et prépare sa vengeance.</p>\r
     </synopsis>\r
     <budget unite='euro'/>\r
-    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=53367.html</url>\r
+    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=1532.html</url>\r
   </film>\r
-  <film id='4'>\r
+  <film id='6'>\r
     <fichiers>\r
       <fichier>Banlieue 13.avi</fichier>\r
     </fichiers>\r
@@ -96,7 +98,7 @@
     <budget unite='euro'/>\r
     <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=54107.html</url>\r
   </film>\r
-  <film id='6'>\r
+  <film id='10'>\r
     <fichiers>\r
       <fichier>Le 51e Etat.rmvb</fichier>\r
     </fichiers>\r
     <budget unite='euro'/>\r
     <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=29085.html</url>\r
   </film>\r
-  <film id='8'>\r
+  <film id='3'>\r
+    <fichiers>\r
+      <fichier>Ace Ventura detective chiens et chats [x264 AC3] [Fr Eng] [Fr Eng] [\99]..mkv</fichier>\r
+    </fichiers>\r
+    <titre>Ace Ventura, détective chiens et chats</titre>\r
+    <annee>1994</annee>\r
+    <realisateurs>\r
+      <realisateur>Tom Shadyac</realisateur>\r
+    </realisateurs>\r
+    <acteurs>\r
+      <acteur>Jim Carrey</acteur>\r
+      <acteur>Courteney Cox</acteur>\r
+      <acteur>Sean Young</acteur>\r
+    </acteurs>\r
+    <lespays>\r
+      <pays>américain</pays>\r
+    </lespays>\r
+    <duree>90</duree>\r
+    <critiquePresse/>\r
+    <critiqueSpectateur/>\r
+    <genres>\r
+      <genre>Comédie</genre>\r
+    </genres>\r
+    <synopsis>\r
+      <p>Ace Ventura, un jeune homme décontracté à la banane arrogante et à la démarche élastique, est le Sherlock Holmes de la gent canine. Le voici à nouveau sur les dents quand le dauphin Flocon de neige, la mascotte de l&apos;équipe de football americain de Miami, manque à l&apos;appel.</p>\r
+    </synopsis>\r
+    <budget unite='euro'/>\r
+    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=11944.html</url>\r
+  </film>\r
+  <film id='15'>\r
+    <fichiers>\r
+      <fichier>A True Mob Story [x264 Aac] [Fr Chn] [Fr].mkv</fichier>\r
+    </fichiers>\r
+    <titre>Gaby : a true story</titre>\r
+    <annee>1987</annee>\r
+    <realisateurs>\r
+      <realisateur>Luis Mandoki</realisateur>\r
+    </realisateurs>\r
+    <acteurs>\r
+      <acteur>Liv Ullmann</acteur>\r
+      <acteur>Norma Aleandro</acteur>\r
+      <acteur>Robert Loggia</acteur>\r
+    </acteurs>\r
+    <lespays>\r
+      <pays>américain</pays>\r
+      <pays> mexicain</pays>\r
+    </lespays>\r
+    <duree>110</duree>\r
+    <critiquePresse/>\r
+    <critiqueSpectateur/>\r
+    <genres>\r
+      <genre>Drame</genre>\r
+    </genres>\r
+    <synopsis>\r
+      <p>La relation entre une femme écrivain paralysée et son infirmière.</p>\r
+    </synopsis>\r
+    <budget unite='euro'/>\r
+    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=50443.html</url>\r
+  </film>\r
+  <film id='20'>\r
+    <fichiers>\r
+      <fichier>Le Jour d&apos;Apres [RV9 Aac] [Fr Eng] [Fr Eng Ne] [XCT].avi</fichier>\r
+    </fichiers>\r
+    <titre>Le Jour d&apos;après</titre>\r
+    <annee>2004</annee>\r
+    <realisateurs>\r
+      <realisateur>Roland Emmerich</realisateur>\r
+    </realisateurs>\r
+    <acteurs>\r
+      <acteur>Dennis Quaid</acteur>\r
+      <acteur>Jake Gyllenhaal</acteur>\r
+      <acteur>Ian Holm</acteur>\r
+    </acteurs>\r
+    <lespays>\r
+      <pays>américain</pays>\r
+    </lespays>\r
+    <duree>120</duree>\r
+    <critiquePresse>4</critiquePresse>\r
+    <critiqueSpectateur>3</critiqueSpectateur>\r
+    <genres>\r
+      <genre>Action</genre>\r
+      <genre>Science Fiction</genre>\r
+      <genre>Thriller</genre>\r
+    </genres>\r
+    <synopsis>\r
+      <p>Le climatologue Jack Hall avait prédit l&apos;arrivée d&apos;un autre âge de glace, mais n&apos;avait jamais pensé que cela se produirait de son vivant.</p>\r
+      <p>Un changement climatique imprévu et violent à l&apos;échelle mondiale entraîne à travers toute la planète de gigantesques ravages : inondations, grêle, tornades et températures d&apos;une magnitude inédite. Jack a peu de temps pour convaincre le Président des Etats-Unis d&apos;évacuer le pays pour sauver des millions de personnes en danger, dont son fils Sam.</p>\r
+      <p>A New York où la température est inférieure à - 20° C, Jack entreprend une périlleuse course contre la montre pour sauver son fils.</p>\r
+    </synopsis>\r
+    <budget unite='euro'/>\r
+    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=45361.html</url>\r
+  </film>\r
+  <film id='13'>\r
     <fichiers>\r
       <fichier>Robocop 3.avi</fichier>\r
     </fichiers>\r
     <budget unite='euro'/>\r
     <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=8143.html</url>\r
   </film>\r
-  <film id='3'>\r
+  <film id='5'>\r
     <fichiers>\r
       <fichier>Assaut sur le central 13 [H264 Aac] [Fr Eng] [Fr Eng Spa] [XCT].mkv</fichier>\r
     </fichiers>\r
     <budget unite='euro'/>\r
     <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=8035.html</url>\r
   </film>\r
-  <film id='10'>\r
+  <film id='21'>\r
+    <fichiers>\r
+      <fichier>Robocop 1.avi</fichier>\r
+    </fichiers>\r
+    <titre>Robocop</titre>\r
+    <annee>1987</annee>\r
+    <realisateurs>\r
+      <realisateur>Paul Verhoeven</realisateur>\r
+    </realisateurs>\r
+    <acteurs>\r
+      <acteur>Nancy Allen</acteur>\r
+      <acteur>Peter Weller</acteur>\r
+      <acteur>Dan O&apos;Herlihy</acteur>\r
+    </acteurs>\r
+    <lespays>\r
+      <pays>américain</pays>\r
+    </lespays>\r
+    <duree>102</duree>\r
+    <critiquePresse/>\r
+    <critiqueSpectateur/>\r
+    <genres>\r
+      <genre>Fantastique</genre>\r
+    </genres>\r
+    <synopsis>\r
+      <p>A l&apos;aube de l&apos;an 2000, Detroit est, comme toujours dans cette sorte d&apos;histoire, la proie du crime et de la corruption. Pour pallier ce terrible etat, les services de police inventent une nouvelle arme infaillible, Robocop, mi-homme, mi-robot, policier electronique de chair et d&apos;acier qui a pour mission de sauvegarder la tranquillite de la ville. Mais comme souvent, ce cyborg a aussi une ame.</p>\r
+    </synopsis>\r
+    <budget unite='euro'/>\r
+    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=3085.html</url>\r
+  </film>\r
+  <film id='22'>\r
     <fichiers>\r
       <fichier>Sky High.avi</fichier>\r
     </fichiers>\r
     <budget unite='euro'/>\r
     <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=50152.html</url>\r
   </film>\r
-  <film id='7'>\r
+  <film id='14'>\r
     <fichiers>\r
-      <fichier>Robocop 1.avi</fichier>\r
+      <fichier>Rocky [x264 Aac] [Fr Eng] [Fr Eng].mkv</fichier>\r
     </fichiers>\r
-    <titre>Robocop</titre>\r
-    <annee>1987</annee>\r
+    <titre>Rocky</titre>\r
+    <annee>1976</annee>\r
     <realisateurs>\r
-      <realisateur>Paul Verhoeven</realisateur>\r
+      <realisateur>John G. Avildsen</realisateur>\r
     </realisateurs>\r
     <acteurs>\r
-      <acteur>Nancy Allen</acteur>\r
-      <acteur>Peter Weller</acteur>\r
-      <acteur>Dan O&apos;Herlihy</acteur>\r
+      <acteur>Sylvester Stallone</acteur>\r
+      <acteur>Talia Shire</acteur>\r
+      <acteur>Burt Young</acteur>\r
     </acteurs>\r
     <lespays>\r
       <pays>américain</pays>\r
     </lespays>\r
-    <duree>102</duree>\r
+    <duree>119</duree>\r
     <critiquePresse/>\r
     <critiqueSpectateur/>\r
     <genres>\r
-      <genre>Fantastique</genre>\r
+      <genre>Action</genre>\r
+      <genre>Drame</genre>\r
     </genres>\r
     <synopsis>\r
-      <p>A l&apos;aube de l&apos;an 2000, Detroit est, comme toujours dans cette sorte d&apos;histoire, la proie du crime et de la corruption. Pour pallier ce terrible etat, les services de police inventent une nouvelle arme infaillible, Robocop, mi-homme, mi-robot, policier electronique de chair et d&apos;acier qui a pour mission de sauvegarder la tranquillite de la ville. Mais comme souvent, ce cyborg a aussi une ame.</p>\r
+      <p>Dans les quartiers populaires de Philadelphie, Rocky Balboa collecte des dettes non payées pour Tony Gazzo, un usurier, et dispute de temps à autre, pour quelques dizaines de dollars, des combats de boxe sous l&apos;appellation de &quot;l&apos;étalon italien&quot;. Cependant, Mickey, son vieil entraîneur, le laisse tomber. Son ami Paulie, qui travaille dans un entrepôt frigorifique, encourage Rocky à sortir avec sa soeur Adrian, une jeune vendeuse réservée d&apos;un magasin d&apos;animaux domestiques.</p>\r
+      <p>Pendant ce temps, Apollo Creed, le champion du monde de boxe catégorie poids lourd, recherche un nouvel adversaire pour remettre son titre en jeu. Son choix se portera sur Rocky.</p>\r
     </synopsis>\r
     <budget unite='euro'/>\r
-    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=3085.html</url>\r
+    <url>http://www.allocine.fr/film/fichefilm_gen_cfilm=28251.html</url>\r
+  </film>\r
+  <film id='23'>\r
+    <fichiers>\r
+      <fichier>alksgsdv.avi</fichier>\r
+    </fichiers>\r
+    <titre>alksgsdv</titre>\r
+    <annee/>\r
+    <realisateurs/>\r
+    <acteurs/>\r
+    <lespays/>\r
+    <duree></duree>\r
+    <critiquePresse/>\r
+    <critiqueSpectateur/>\r
+    <genres/>\r
+    <synopsis/>\r
+    <budget unite='euro'/>\r
+    <url/>\r
   </film>\r
 </filmographie>
\ No newline at end of file