X-Git-Url: http://git.euphorik.ch/?p=pompage.git;a=blobdiff_plain;f=src%2Fmodules%2Fallocine.rb;h=d5da08cc09e49d23ec8efba2debf1f5aeebeee3c;hp=e4173bbbbe1c8b599ced9664dd1c5eab90ce0431;hb=84fd971104c7cc367ecca4b7ae7073fb7a7e5a7a;hpb=461c0b1456b2086b3318dffcfd17c29e7e1d1778 diff --git a/src/modules/allocine.rb b/src/modules/allocine.rb index e4173bb..d5da08c 100644 --- a/src/modules/allocine.rb +++ b/src/modules/allocine.rb @@ -1,4 +1,5 @@ require 'net/http' +require 'uri' require 'cgi' require 'thread' require 'iconv' @@ -7,16 +8,15 @@ require "basemodule.rb" # un mixin pour allocine class Allocine < Basemodule - + # Voir le parent. def rechercherFilm(titre) - Thread.current["connexion"] = Net::HTTP::new('www.allocine.fr') if Thread.current["connexion"].nil? - connexion = Thread.current["connexion"] + @connexion = Net::HTTP::new('www.allocine.fr') if @connexion.nil? donneesHtml = nil begin begin - reponse, donneesHtml = connexion.get("/recherche/?rub=1&motcle=#{CGI::escape(Iconv.iconv("ISO-8859-1", "UTF-8", titre)[0])}") + reponse, donneesHtml = @connexion.get("/recherche/?rub=1&motcle=#{CGI::escape(Iconv.iconv("ISO-8859-1", "UTF-8", titre)[0])}") rescue Exception => e p e puts "[!] Connexion lost, retry.." @@ -38,7 +38,6 @@ class Allocine < Basemodule reponses = {} unless titre.nil? or titre.empty? - r = donneesHtml.scan(/(.*?)<\/a>(?:<\/h4>
 (.*?)<\/h5>){0,1}(?:


<\/h4>){0,1}(?:

de (.*?)<\/h4>){0,1}(?:

 avec (.*?)<\/h4>){0,1}(?:

 \((.*?)\)<\/h4>){0,1}/) r.each{|f| @@ -50,11 +49,27 @@ class Allocine < Basemodule # Voir le parent. def load(id, film) - Thread.current["connexion"] = Net::HTTP::new('www.allocine.fr') if Thread.current["connexion"].nil? - connexion = Thread.current["connexion"] - - r, ficheHtml = connexion.get("/film/fichefilm_gen_cfilm=#{id}.html") + @connexion = Net::HTTP::new('www.allocine.fr') if @connexion.nil? + + r, ficheHtml = @connexion.get("/film/fichefilm_gen_cfilm=#{id}.html") + // =~ ficheHtml + unless $1.nil? + @threadImage = Thread::new($1){|imageUrl| + begin + imageUrl = URI.parse(imageUrl) + connexionImage = Net::HTTP::new(imageUrl.host) + r, image = connexionImage.get(imageUrl.path) + f = File::new($repBase + "/" + $repAffichette + film.id.to_s + ".jpg", 'w').binmode + f.write(image) + f.close + rescue Exception => e + puts e.message + puts e.backtrace + end + } + end + #convertit le code latin-1 en UTF8 ficheHtml = Iconv.iconv("UTF-8", "ISO-8859-1", ficheHtml)[0] @@ -121,4 +136,8 @@ class Allocine < Basemodule /Budget<\/b> : (.+?) millions d'euros<\/h4>/ =~ ficheHtml film.budget = $1 unless $1.nil? end + + def finish + @threadImage.join if defined? @threadImage + end end \ No newline at end of file