X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=src%2Fmodules%2Fallocine.rb;h=3883c3b8d4319640aca9e72c88e95479d0067ce7;hb=4c7939a757a98c33339c48482ffc1708e9662809;hp=b4b65f0a5cdebbc6417bf16ae0722194f5c7f48b;hpb=40778efb4943c2f728258e865210fa169dfb3d15;p=pompage.git diff --git a/src/modules/allocine.rb b/src/modules/allocine.rb index b4b65f0..3883c3b 100644 --- a/src/modules/allocine.rb +++ b/src/modules/allocine.rb @@ -1,220 +1,228 @@ -# coding: utf-8 - -require 'net/http' -require 'uri' -require 'cgi' -require 'thread' -require 'iconv' - -require "basemodule.rb" - -# doc : http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html -Net::HTTP.version_1_2 - -# hack : http://arosien.blogspot.com/2007/06/increasing-rubys-netbufferedio-buffer.html -module Net - class BufferedIO - def rbuf_fill - timeout(@read_timeout) { @rbuf << @io.sysread(32768) } - end - end -end - -# un module d'importation pour le site "www.allocine.fr" -class Allocine < Basemodule - - def createConnexion - begin - @connexion = Net::HTTP::new('www.allocine.fr').start if @connexion == nil || !@connexion.started? - rescue - Puts "[!] Impossible de se connecter à Allocine. Retry.." - retry - end - end - - def fermerConnexion - @connexion.finish if defined? @connexion && @connexion.started? # on admet qu'après un load on a plus besoin de la connexion - @connexion = nil - end - - # voir le parent. - def rechercherFilm(titre) - createConnexion - - begin - reponse = nil - begin - reponse = @connexion.get("/recherche/?rub=1&motcle=#{CGI::escape(Iconv.iconv("ISO-8859-1", "UTF-8", titre)[0])}") - rescue Exception => e - p e - puts "[!] Erreur lors de la recherche du titre #{titre}, retry.." - fermerConnexion - createConnexion - retry - end - - # convertit le code latin-1 en UTF8 - html = Iconv.iconv("UTF-8", "ISO-8859-1", reponse.body)[0] - - # si pas trouvé alors on enlève un mot à la fin - if /.*?Pas de résultats.*?/ =~ html || ! html.include?("