MOD Petites modifs peux significatives
[pompage.git] / src / yopyop.rb
index 93001ef..2e66148 100644 (file)
@@ -1,45 +1,93 @@
+# coding: utf-8\r
 # YopYop est un super programme permettant de :\r
-# - Parcourir des dossiers recursivement à la recherche de fichier video\r
-# - Parser les fichiers afin d'en retirer les infos suivantes :\r
+# - Parcourir des dossiers recursivement à la recherche de fichiers videos\r
+# - Parser les fichiers afin d'en retirer les infos suivantes : (pas encore implémenté)\r
 #  o le codec video\r
 #  o le codec son\r
 #  o les pistes audio\r
 #  o les sous-titres disponible\r
-# - Les formats supportés  :\r
+# - Les formats supportés :\r
 #  o avi\r
 #  o ogm\r
 #  o mkv\r
 #  o rmvb\r
-# - Rechercher chaque film sur le site 'allocine.com' et en pomper un max d'infos\r
-# - Etablir une petit base de données des films au format xml\r
+# - Rechercher chaque film sur le site 'allocine.com' et 'imdb.com' et en pomper un max d'infos\r
+# - Etablir une petit base de données des films au format xml\r
 \r
+require 'films.rb'\r
+require 'film.rb'\r
 \r
-$: << Dir::getwd + "/" + __FILE__.split('/')[0]\r
+require 'images.rb'\r
 \r
-require 'film.rb'\r
+# vérifie les arguments donnés\r
+$xmlFile = nil\r
+$repBase = Dir::getwd\r
+$repFilms = '.'\r
+$repAffichette = '../img/affichette/'\r
+$force = false\r
+mod = 'Allocine'\r
+purgeImages = false\r
+update = nil\r
+titre = ".*"\r
 \r
-# vérifie les arguments données\r
-rep = '.'\r
-if $*.empty?\r
-   puts 'USAGE : <xml file> [<directory>]'\r
+aPrec = ''\r
+$*.each{|a|\r
+   case a\r
+      when '-p'\r
+         purgeImages = true\r
+         next\r
+      when '-f'\r
+         $force = true\r
+         next\r
+   end\r
+   case aPrec\r
+      when '-x'\r
+         $xmlFile = a\r
+      when '-d'\r
+         $repFilms = a\r
+      when '-m'\r
+         mod = a.capitalize\r
+      when '-a'\r
+         $repAffichette = a\r
+      when '-u'\r
+         update = a\r
+      when '-t'\r
+         titre = a\r
+   end      \r
+   aPrec = a\r
+}\r
+\r
+if $xmlFile.nil?\r
+   puts USAGE\r
    exit 0\r
-elsif $*.size == 1\r
-   puts 'no directory given, use the current'\r
-else\r
-   rep = $*[1]\r
 end\r
-xmlFile = $*[0]\r
 \r
-unless File::directory?(rep)\r
- puts "'#{rep}' is not a valid directory"\r
+unless File::directory?($repFilms)\r
+ puts "'#{$repFilms}' is not a valid directory"\r
  exit 1\r
 end\r
 \r
-# charge les films à partir du fichier xml\r
-Film::loadFilmsXml(xmlFile)\r
+begin\r
+   require "modules/#{mod}"\r
+rescue\r
+   puts "Le module '#{mode}' n'existe pas. Les modules se trouvent dans le dossier 'src/modules'"\r
+   puts USAGE\r
+   exit 1\r
+end\r
 \r
-# lit le repertoire\r
-Film::litRepertoire(rep)\r
+# charge les films à partir du fichier xml\r
+films = Films::new($xmlFile, Module.class_eval(mod))\r
 \r
-# ecrit le fichier XML\r
-Film::getFilmsXml.write(File::new(xmlFile, 'w'), 1)\r
+if purgeImages\r
+   Images.nettoyer(films, $repAffichette)\r
+else\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, titre)\r
+   end\r
+   \r
+   # écrit le fichier XML\r
+   films.sauverFilms()\r
+end\r