X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=src%2Fmodules%2Fallocine.rb;h=893f7ed8c28e10be37bf9a45992eae0678ef11bc;hb=728b3f5df7b780aabdaf563f9d93dd3ef4421820;hp=bdbfa1c74482fce07040671725da1673b0e57f07;hpb=f2d0f55dc2e3dc77561c26703e382b1917498242;p=pompage.git diff --git a/src/modules/allocine.rb b/src/modules/allocine.rb index bdbfa1c..893f7ed 100644 --- a/src/modules/allocine.rb +++ b/src/modules/allocine.rb @@ -1,22 +1,26 @@ require 'net/http' +require 'uri' require 'cgi' require 'thread' require 'iconv' require "basemodule.rb" -# un mixin pour allocine +# un module d'importation pour le site "www.allocine.fr" class Allocine < Basemodule + def createConnexion + @connexion = Net::HTTP::new('www.allocine.fr') if @connexion.nil? + end + # Voir le parent. def rechercherFilm(titre) - Thread.current["connexion"] = Net::HTTP::new('www.allocine.fr') if Thread.current["connexion"].nil? - connexion = Thread.current["connexion"] - + createConnexion + donneesHtml = nil begin begin - reponse, donneesHtml = connexion.get("/recherche/?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 +42,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 +53,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") + createConnexion + + 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 +140,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