}\r
end\r
\r
- # Lit un repertoire de manière recursive et va chercher les informations concernant le film sur le net\r
+ # Lit un repertoire de manière recursive et va chercher les informations concernant le film sur le net.\r
def pomper(r)\r
@repBase = r\r
repPrecedant = Dir::getwd\r
end\r
\r
racine = REXML::Document::new(File::new(@xmlFile)).root\r
- racine.each_element{|e| \r
+ racine.elements.each("film"){|e| \r
id = e.attribute('id').to_s.to_i\r
\r
if id >= @idDisponible\r
@idDisponible = id + 1 \r
end\r
\r
- titre = e.get_elements('titre')[0].get_text\r
- url = e.get_elements('url')[0].get_text \r
- fichiers = e.get_elements('fichiers')[0].get_elements('fichier')\r
- annee = e.get_elements('annee')[0].get_text\r
- duree = e.get_elements('duree')[0].get_text\r
- critiquePresse = e.get_elements('critiquePresse')[0].get_text\r
- critiqueSpectateur = e.get_elements('critiqueSpectateur')[0].get_text\r
- synopsis = e.get_elements('synopsis')[0].get_elements('p')\r
- budget = e.get_elements('budget')[0].get_text \r
- realisateurs = e.get_elements('realisateurs')[0].get_elements('realisateur')\r
- acteurs = e.get_elements('acteurs')[0].get_elements('acteur')\r
- pays = e.get_elements('lespays')[0].get_elements('pays')\r
- genres = e.get_elements('genres')[0].get_elements('genre')\r
+ film = Film::new(nil, @modClasse::new)\r
+ film.id = id\r
\r
- film = Film::new(fichiers[0].get_text.value, @modClasse::new)\r
+ film.titre = e.get_text('titre')\r
+ film.titre = film.titre.value if film.titre != nil\r
\r
- film.id = id\r
- film.titre = titre.value unless titre.nil?\r
+ print "#{film.titre}.. "\r
+\r
+ \r
+ film.url = e.get_text('url')\r
+ film.url = film.url.value if film.url != nil\r
+\r
+ film.annee = e.get_text('annee')\r
+ film.annee = film.annee.value if film.annee != nil \r
\r
- film.url = url.value unless url.nil?\r
+ film.duree = e.get_text('duree')\r
+ film.duree = film.duree.value if film.duree != nil\r
\r
- fichiers.each{|e|\r
- film.addFichier(e.get_text.value)\r
- @filmsFichier[e.get_text.value] = film\r
+ film.critiquePresse = e.get_text('critiquePresse')\r
+ film.critiquePresse = film.critiquePresse.value if film.critiquePresse != nil\r
+ \r
+ film.critiqueSpectateur = e.get_text('critiqueSpectateur')\r
+ film.critiqueSpectateur = film.critiqueSpectateur.value if film.critiqueSpectateur != nil\r
+ \r
+ film.budget = e.get_text('budget')\r
+ film.budget = film.budget.value if film.budget != nil\r
+ \r
+ e.elements.each('fichiers/fichier'){|f|\r
+ next if f.get_text == nil\r
+ film.addFichier(f.get_text.value)\r
+ @filmsFichier[f.get_text.value] = film\r
}\r
- film.annee = annee.value unless annee.nil?\r
- acteurs.each{|e|\r
- film.acteurs << Personne::ajouter(e.get_text.value)\r
+ \r
+ e.elements.each('realisateurs/realisateur'){|f|\r
+ film.realisateurs << Personne::ajouter(f.get_text.value)\r
}\r
- realisateurs.each{|e|\r
- film.realisateurs << Personne::ajouter(e.get_text.value)\r
+ \r
+ e.elements.each('acteurs/acteur'){|f|\r
+ film.acteurs << Personne::ajouter(f.get_text.value)\r
}\r
- pays.each{|e|\r
- film.pays << Pays::ajouter(e.get_text.value)\r
+ \r
+ e.elements.each('lespays/pays'){|f|\r
+ film.pays << Pays::ajouter(f.get_text.value)\r
}\r
- film.duree = duree.value unless duree.nil?\r
- film.critiquePresse = critiquePresse.value unless critiquePresse.nil?\r
- film.critiqueSpectateur = critiqueSpectateur.value unless critiqueSpectateur.nil?\r
- genres.each{|e|\r
- film.genres << Genre::ajouter(e.get_text.value) if e.get_text != nil\r
- } \r
+ \r
+ e.elements.each('genres/genre'){|f|\r
+ film.genres << Genre::ajouter(f.get_text.value)\r
+ } \r
+ \r
debut = true\r
film.synopsis = ""\r
- synopsis.each{|e|\r
- film.synopsis += "\n" unless debut\r
- film.synopsis += e.get_text.value if e.get_text != nil\r
+ e.elements.each('synopsis/p'){|f|\r
+ film.synopsis += "\n" unless debut \r
+ film.synopsis += f.get_text.value if f.get_text != nil\r
debut = false\r
- } \r
+ } \r
film.synopsis = nil if film.synopsis == ""\r
- film.budget = budget.value unless budget.nil?\r
+ \r
@films[film.titre] = film\r
}\r
end\r
pomperR(fichier) \r
else\r
\r
- #CGI::escapeHTML(\r
- fichier = Iconv.iconv("UTF-8", "ISO-8859-1", fichier)[0]\r
+ #fichier = Iconv.iconv("UTF-8", "ISO-8859-1", fichier)[0] // sous windows il faut décommenter cette ligne\r
\r
# véfication de l'extension\r
/^.*?\.([^.]{3,4})$/ =~ fichier\r
if !FILMS_EXTENSIONS.include?($1)\r
next\r
- end\r
- \r
+ end
+ \r
# on skip si le film est déjà dans la BD\r
if film = @filmsFichier[fichier]\r
puts "[!] Film déjà dans la BD : #{film.titre} (#{film.fichiers[0]})"\r
Thread::start{\r
begin \r
film = Film::new(fichier, @modClasse::new)\r
- @mutexId.synchronize {\r
+ @mutexId.synchronize{\r
film.id = getNewId # on lui donne un nouvel ID\r
}\r
- film.loadData # on charge ses données\r
\r
- @mutexAjout.synchronize {\r
+ film.loadData # chargement de ses données\r
+ \r
+ @mutexAjout.synchronize{\r
ajouterFilm(film)\r
- } \r
+ }\r
rescue Exception => e\r
puts e.message\r
puts e.backtrace\r