From 171308744ae16e63958d4b83dc135aa7bbdeab8f Mon Sep 17 00:00:00 2001 From: pifou Date: Wed, 18 Jul 2007 08:34:22 +0000 Subject: [PATCH] MOD Petites modifs peux significatives git-svn-id: svn://euphorik.ch/pompage@58 02bbb61a-6d21-0410-aba0-cb053bdfd66a --- doc/todo.txt | 11 ++++++----- src/basemodule.rb | 2 +- src/constantes.rb | 7 ++++--- src/films.rb | 12 ++++++------ src/modules/allocine.rb | 12 +++++++----- src/yopyop.rb | 6 +++--- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/doc/todo.txt b/doc/todo.txt index fc428ba..f9bde68 100644 --- a/doc/todo.txt +++ b/doc/todo.txt @@ -16,12 +16,13 @@ [ok] Choisir un film aléatoirement dans la liste des films [ok] Tout dérouler ou enrouler les films actuellement affichées [ok] problème avec les & dans le nom du fichier, donne ca dans la base xml -> "&amp;" au lieu de "&" - -* Chargement du xml trop lent ! -* Ajouter des options au programme : +[ok] Pomper les images (affichettes) +[ok] Ajouter des options au programme : - Mettre à jour un film en donnant son ID en paramètre - Donner en paramètre un dossier pour les images - Re synchroniser toutes les informations des films (à partir du lien mémorisé dans les films) -* Pomper les images (affichettes) + +* Chargement du xml trop lent ! : dans '/src/films.rb' : 'def chargerFilms' * Parser les langues et sous-titres et les ajouter dans l'xml -* Parser les langues et sous-titres et les ajouter dans l'xml \ No newline at end of file +* remplacer les scripts bats par des scripts compatibles POSIX (il faudra alors utiliser cygwin sous windows) +* pouvoir supporter plusieurs 'module' de pompage simultanément et mémoriser plusieurs url (une par module) par film \ No newline at end of file diff --git a/src/basemodule.rb b/src/basemodule.rb index 6a0deef..2987b5b 100644 --- a/src/basemodule.rb +++ b/src/basemodule.rb @@ -21,7 +21,7 @@ class Basemodule # p1 : l'id de allocine def loadURL(url, film) raise - end + end # appelé lorsque le module n'est plus utile (permet de libérer des ressource par exemple). def finish diff --git a/src/constantes.rb b/src/constantes.rb index 3e81467..eeaae1b 100644 --- a/src/constantes.rb +++ b/src/constantes.rb @@ -6,16 +6,17 @@ # UTF-8 $KCODE = 'u' -#constantes +# les extensions des fichiers considérés comme des films FILMS_EXTENSIONS = ['avi', 'mkv', 'rmvb', 'ogm', 'divx'] -# la structure d'un fichier (pas utilisé) +# la structure d'un fichier +# actuellement pas utilisé, il était prévu au départ de renommer automatiquement les fichiers suivant ce format FICHIER_PATTERN = " [<codec>] [<lang-audio>] [<lang-st>] [<team>]" # charge les informations depuis le web ? LOAD_DATA = true -#le nombre de connexions simultanées sur le site de films +# le nombre de connexions simultanées sur le site de films NB_CONN_MAX = 20 # une aide pour l'utilisateur diff --git a/src/films.rb b/src/films.rb index 24befe8..0f50c99 100644 --- a/src/films.rb +++ b/src/films.rb @@ -51,7 +51,7 @@ class Films } end - # Lit un repertoire de manière recursive et va chercher les informations concernant le film sur le net + # Lit un repertoire de manière recursive et va chercher les informations concernant le film sur le net. def pomper(r) @repBase = r repPrecedant = Dir::getwd @@ -263,7 +263,6 @@ class Films pomperR(fichier) else - #CGI::escapeHTML( fichier = Iconv.iconv("UTF-8", "ISO-8859-1", fichier)[0] # véfication de l'extension @@ -288,14 +287,15 @@ class Films Thread::start{ begin film = Film::new(fichier, @modClasse::new) - @mutexId.synchronize { + @mutexId.synchronize{ film.id = getNewId # on lui donne un nouvel ID } - film.loadData # on charge ses données - @mutexAjout.synchronize { + film.loadData # chargement de ses données + + @mutexAjout.synchronize{ ajouterFilm(film) - } + } rescue Exception => e puts e.message puts e.backtrace diff --git a/src/modules/allocine.rb b/src/modules/allocine.rb index b4b65f0..c26c214 100644 --- a/src/modules/allocine.rb +++ b/src/modules/allocine.rb @@ -20,7 +20,7 @@ module Net end end -# un module d'importation pour le site "www.allocine.fr" +# Un module d'importation pour le site "www.allocine.fr". class Allocine < Basemodule def createConnexion @@ -37,7 +37,7 @@ class Allocine < Basemodule @connexion = nil end - # voir le parent. + # Voir le parent. def rechercherFilm(titre) createConnexion @@ -82,11 +82,11 @@ class Allocine < Basemodule loadPath("/film/fichefilm_gen_cfilm=#{id}.html", film) end + # Voir le parent. def loadURL(url, film) loadPath(URI.parse(url).path, film) end - # Voir le parent. def loadPath(path, film) createConnexion @@ -103,9 +103,10 @@ class Allocine < Basemodule puts "Pompage de #{film.titre} (#{film.fichiers[0]}) ..." - #convertit le code latin-1 en UTF8 + # convertit le code latin-1 en UTF8 html = Iconv.iconv("UTF-8", "ISO-8859-1", html)[0] + # pompage de l'image dans un thread séparé if take?("image") && ($force || !film.possedeImage?) /<img src="(.*?)" border="0" alt="" class="affichette" \/>/ =~ html unless $1.nil? @@ -212,9 +213,10 @@ class Allocine < Basemodule end fermerConnexion - end + end def finish + # on attend que tous les threads de pompage d'image aient terminé @threadImage.join if defined? @threadImage end end \ No newline at end of file diff --git a/src/yopyop.rb b/src/yopyop.rb index 2b1116e..2e66148 100644 --- a/src/yopyop.rb +++ b/src/yopyop.rb @@ -1,7 +1,7 @@ # coding: utf-8 # YopYop est un super programme permettant de : -# - Parcourir des dossiers recursivement à la recherche de fichier video -# - Parser les fichiers afin d'en retirer les infos suivantes : +# - Parcourir des dossiers recursivement à la recherche de fichiers videos +# - Parser les fichiers afin d'en retirer les infos suivantes : (pas encore implémenté) # o le codec video # o le codec son # o les pistes audio @@ -46,7 +46,7 @@ $*.each{|a| when '-d' $repFilms = a when '-m' - mod = a + mod = a.capitalize when '-a' $repAffichette = a when '-u' -- 2.43.0