#!/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'extractionclass 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 } endend#-------------------------------------------------------------------------------------------------------------# création des GUI#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------# séquence principale#-------------------------------------------------------------------------------------------------------------# on extrait les titres des dvd1.upto( 2 ) { |i| dvd = Cd_divix.new( i ) dvd.remplacer_lignes} #-------------------------------------------------------------------------------------------------------------#on écrit les titres dans le fichier .svgfichier_nouveau = File.new( $fichier_dest, "w" ) fichier_nouveau.puts( $lignes )fichier_nouveau.close