#!/usr/bin/ruby
#nous allons procéder comme ça:
# 1°/ le script demande d'insérer les cd pour récupérer les titres
# a) on ejecte le tray et on demande d'insérer un cd
# b) on extrait le nom des divix
# c) on fait la meme chose pour un second cd
# 2°/ il écrit ces noms dans le fichier .svg
# a) on demande le chemin du fichier model
# b) on demande le chemin du fichier de destination
# c) on crée le fichier modifié à partir du fichier model
#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#initialisation
#marque ici les chemins du fichier cible et celui du model
$fichier_dest = "/home/kik/divxtitler.svg"
$fichier_model = "/home/kik/documents/programmes/ruby/racoon/templates_divx.svg"
$lignes = IO.readlines( $fichier_model )
#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#création des classes et des méthodes
#-------------------------------------------------------------------------------------------------------------
#on fait un classe cd_divix qui contient le titre des divix et les méthodes d'extraction
class Cd_divix
#extraction des données
def initialize( num_cd)
@num_cd = num_cd
@titres = Array.new( 6 )
if @num_cd == 1
@position = [ 1433, 1437, 1441, 1445, 1449, 1453 ]
else
@position = [ 2340, 2344, 2348, 2352, 2356, 2360 ]
end
`clear`
puts "veuillez insérer le cd #{@num_cd} et appuyer sur 'entrée'..."
`eject`
fake = gets
#vérification de la présence des divix
nombre_divix = 0
Dir.foreach( '/media/cdrom') { |fichier|
if fichier.match( 'avi' ) != nil
@titres[ nombre_divix ] = fichier
nombre_divix += 1
end
}
if nombre_divix != 6
puts "Il n'y a pas 6 et/ou juste 6 divix sur ce cd"
exit
end
end
#modification des lignes
def remplacer_lignes
0.upto( 5 ) { |i|
coord_y = $lignes[ @position[ i ] ].split( '>' )
$lignes[ @position[ i ] ] = coord_y[ 0 ] + ">" + @titres[ i ] + "</tspan><tspan"
$lignes[ @position[ i ] ] = coord_y[ 0 ] + ">" + @titres[ i ] + "</tspan></text>" if i == 5 && @num_cd == 1
}
end
end
#-------------------------------------------------------------------------------------------------------------
# création des GUI
#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# séquence principale
#-------------------------------------------------------------------------------------------------------------
# on extrait les titres des dvd
1.upto( 2 ) { |i|
dvd = Cd_divix.new( i )
dvd.remplacer_lignes
}
#-------------------------------------------------------------------------------------------------------------
#on écrit les titres dans le fichier .svg
fichier_nouveau = File.new( $fichier_dest, "w" )
fichier_nouveau.puts( $lignes )
fichier_nouveau.close