-# 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
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
- def Film::setModule(m)\r
- @@module = m\r
- end\r
- \r
+ \r
# toutes les données membres sont accessibles par défaut (écriture/lecture)\r
- attr_accessor :id, :titre, :url, :fichiers, :annee, :realisateurs, :acteurs, :pays, :duree, :critiquePresse, :critiqueSpectateur, :genres, :synopsis, :budget\r
+ attr_accessor :id, :titre, :url, :fichiers, :mod, :annee, :realisateurs, :acteurs, :pays, :duree, :critiquePresse, :critiqueSpectateur, :genres, :synopsis, :budget\r
\r
# Constructeur. N'entreprend aucune action (chargement), crée juste un film vide.\r
# p1 [String] : le fichier correspondant au film\r
- def initialize(fichier)\r
- @fichiers = [fichier] # le chemin des fichiers est relatif au repertoire de base\r
+ def initialize(fichier, mod)\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
@titre = ''\r
@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
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
end\r
end\r
\r
- @@module.load(@choix[tabNoms[choix-1]], self)\r
+ @mod.load(@choix[tabNoms[choix-1]], self)\r
\r
return 1\r
end\r
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
return self\r
end\r
\r
- reponses = @@module.rechercherFilm(titre)\r
+ reponses = @mod.rechercherFilm(titre)\r
@nbReponses = reponses.size\r
\r
if @nbReponses == 1\r
- @@module.load(reponses.values[0], self)\r
+ @mod.load(reponses.values[0], self)\r
else\r
@choix = reponses \r
end\r
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