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