X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;ds=inline;f=src%2Fmodules%2Fallocine.rb;h=3883c3b8d4319640aca9e72c88e95479d0067ce7;hb=9f7e761800746e5d6f1765f7f6b8c5c80f93188d;hp=01764f82eed968800aa218e532add70e312a0d8d;hpb=c3b0deb3d8c9f439739c79806e915c29bc1d4b84;p=pompage.git diff --git a/src/modules/allocine.rb b/src/modules/allocine.rb index 01764f8..3883c3b 100644 --- a/src/modules/allocine.rb +++ b/src/modules/allocine.rb @@ -1,182 +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 - @connexion = Net::HTTP::new('www.allocine.fr').start if @connexion == nil || !@connexion.started? - 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?("