d6a91b357a6ab052fbe1ff9c0b503c6c365e46f5
[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 fichiers videos
4 # - Parser les fichiers afin d'en retirer les infos suivantes : (pas encore implémenté)
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 $force = false
28 mod = 'Allocine'
29 purgeImages = false
30 update = nil
31 titre = ".*"
32
33 aPrec = ''
34 $*.each{|a|
35 case a
36 when '-p'
37 purgeImages = true
38 next
39 when '-f'
40 $force = true
41 next
42 end
43 case aPrec
44 when '-x'
45 $xmlFile = a
46 when '-d'
47 $repFilms = a
48 when '-m'
49 mod = a.capitalize
50 when '-a'
51 $repAffichette = a
52 when '-u'
53 update = a
54 when '-t'
55 titre = a
56 end
57 aPrec = a
58 }
59
60 if $xmlFile.nil?
61 puts USAGE
62 exit 0
63 end
64
65 unless File::directory?($repFilms)
66 puts "'#{$repFilms}' is not a valid directory"
67 exit 1
68 end
69
70 begin
71 require "modules/#{mod.downcase}"
72 rescue
73 puts "Le module '#{mod.downcase}' n'existe pas. Les modules se trouvent dans le dossier 'src/modules'"
74 puts USAGE
75 exit 1
76 end
77
78 # charge les films à partir du fichier xml
79 films = Films::new($xmlFile, Module.class_eval(mod))
80
81 if purgeImages
82 Images.nettoyer(films, $repAffichette)
83 else
84 if update == nil
85 # parcours le dossier donné et recherche les infos sur le net
86 films.pomper($repFilms)
87 else
88 films.update(update, titre)
89 end
90
91 # écrit le fichier XML
92 films.sauverFilms()
93 end