ADD Ajout de la possibilité de mettre à jour des champs de la bd
[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 update = nil
30
31 aPrec = ''
32 $*.each{|a|
33 case a
34 when '-p'
35 purgeImages = true
36 next
37 end
38 case aPrec
39 when '-x'
40 $xmlFile = a
41 when '-d'
42 $repFilms = a
43 when '-m'
44 mod = a
45 when '-a'
46 $repAffichette = a
47 when '-u'
48 update = a
49 end
50 aPrec = a
51 }
52
53 if $xmlFile.nil?
54 puts USAGE
55 exit 0
56 end
57
58 unless File::directory?($repFilms)
59 puts "'#{$repFilms}' is not a valid directory"
60 exit 1
61 end
62
63 begin
64 require "modules/#{mod}"
65 rescue
66 puts "Le module '#{mode}' n'existe pas. Les modules se trouvent dans le dossier 'src/modules'"
67 puts USAGE
68 exit 1
69 end
70
71 # charge les films à partir du fichier xml
72 films = Films::new($xmlFile, Module.class_eval(mod))
73
74 if purgeImages
75 Images.nettoyer(films, $repAffichette)
76 else
77 if update == nil
78 # parcours le dossier donné et recherche les infos sur le net
79 films.pomper($repFilms)
80 else
81 films.update(update)
82 end
83
84 # écrit le fichier XML
85 films.sauverFilms()
86 end