FIX la méthode trim n'existe pas pour les strings... il faut utiliser strip
[pompage.git] / src / film.rb
index 309f686..12796a3 100644 (file)
@@ -1,7 +1,4 @@
-# Représente un Film.\r
-# Permet de charger des données depuis allocine.fr\r
-# Permet d'effectuer des recherches depuis allocine.fr\r
-# TODO : rendre la classe indépendant de la source de donnée pour pouvoir utiliser d'autres sites comme par exemple imdb.com\r
+# coding: utf-8\r
 \r
 require 'pays.rb'\r
 require 'genre.rb'\r
@@ -20,6 +17,9 @@ class String
    end\r
 end\r
 \r
+# Représente un Film.\r
+# Permet de charger des données depuis allocine.fr\r
+# Permet d'effectuer des recherches depuis allocine.fr\r
 class Film\r
       \r
    # toutes les données membres sont accessibles par défaut (écriture/lecture)\r
@@ -28,7 +28,9 @@ class Film
    # Constructeur. N'entreprend aucune action (chargement), crée juste un film vide.\r
    # p1 [String] : le fichier correspondant au film\r
    def initialize(fichier, mod)\r
-      @fichiers = [fichier] # le chemin des fichiers est relatif au repertoire de base\r
+      @fichiers = [] # le chemin des fichiers est relatif au repertoire de base\r
+      @fichiers << fichier if fichier != nil && fichier != ''\r
+      \r
       @mod = mod\r
            \r
       @id = 0\r
@@ -44,13 +46,21 @@ class Film
       @synopsis = nil\r
       @budget = nil      \r
       @budgetUnite = 'euro'\r
-      @url\r
+      @url = nil\r
             \r
       @nbReponses = 0\r
       \r
       # mémorise les tuples {nom => id} dans le cas ou il y a plusieurs choix de films après une recherche\r
       @choix = {}\r
    end\r
+   \r
+   def titre=(t)\r
+      if t == nil\r
+         @titre = ""\r
+      else\r
+         @titre = t\r
+      end\r
+   end\r
 \r
    # Est-ce qu'il y a eu plusieurs réponses pour ce film lors de la cherche sur le net ?\r
    def plusieursReponses?\r
@@ -77,6 +87,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
@@ -120,9 +131,9 @@ class Film
       titre = $1.gsub(/[_\.]/, ' ')\r
       #remplace les suites d'espaces par un seul\r
       titre.gsub!(/ {2,}/,' ')\r
-      titre.gsub!(/\[.*?\]/,'')\r
-      titre.gsub!(/\(.*?\)/,'')\r
-      titre.gsub!(/\{.*?\}/,'')\r
+      titre.gsub!(/\[.*?\]/,' ')\r
+      titre.gsub!(/\(.*?\)/,' ')\r
+      titre.gsub!(/\{.*?\}/,' ')\r
       #vire les espaces au début et à la fin\r
       titre.strip!\r
       \r
@@ -144,6 +155,27 @@ class Film
       self\r
    end\r
    \r
+   def cheminImage\r
+      return $repBase + "/" + $repAffichette + @id.to_s + ".jpg";\r
+   end\r
+   \r
+   def setImage(image)\r
+      f = File::new(cheminImage, 'w').binmode\r
+      f.write(image)\r
+      f.close\r
+   end\r
+   \r
+   def possedeImage?\r
+      return File::exist?(cheminImage)\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