git-svn-id: svn://euphorik.ch/pompage@45 02bbb61a-6d21-0410-aba0-cb053bdfd66a
[pompage.git] / src / yopyop.rb
1 # coding: utf-8
2 # YopYop est un super programme permettant de :
3 # - Parcourir des dossiers recursivement à la recherche de fichier video
4 # - Parser les fichiers afin d'en retirer les infos suivantes :
5 # o le codec video
6 # o le codec son
7 # o les pistes audio
8 # o les sous-titres disponible
9 # - Les formats supportés :
10 # o avi
11 # o ogm
12 # o mkv
13 # o rmvb
14 # - Rechercher chaque film sur le site 'allocine.com' et 'imdb.com' et en pomper un max d'infos
15 # - Etablir une petit base de données des films au format xml
16
17 require 'films.rb'
18 require 'film.rb'
19
20 require 'images.rb'
21
22 # vérifie les arguments donnés
23 $xmlFile = nil
24 $repBase = Dir::getwd
25 $repFilms = '.'
26 $repAffichette = '../img/affichette/'
27 mod = 'Allocine'
28 purgeImages = false
29
30 aPrec = ''
31 $*.each{|a|
32 case a
33 when '-p'
34 purgeImages = true
35 next
36 end
37 case aPrec
38 when '-x'
39 $xmlFile = a
40 when '-d'
41 $repFilms = a
42 when '-m'
43 mod = a
44 when '-a'
45 $repAffichette = a
46 end
47 aPrec = a
48 }
49
50 if $xmlFile.nil?
51 puts USAGE
52 exit 0
53 end
54
55 unless File::directory?($repFilms)
56 puts "'#{$repFilms}' is not a valid directory"
57 exit 1
58 end
59
60 begin
61 require "modules/#{mod}"
62 rescue
63 puts "Le module '#{mode}' n'existe pas. Les modules se trouvent dans le dossier 'src/modules'"
64 puts USAGE
65 exit 1
66 end
67
68 # charge les films à partir du fichier xml
69 films = Films::new($xmlFile, Module.class_eval(mod))
70
71 if purgeImages
72 Images.nettoyer(films, $repAffichette)
73 else
74 # parcours le dossier donné et recherche les infos sur le net
75 films.pomper($repFilms)
76
77 # écrit le fichier XML
78 films.sauverFilms()
79 end