#!/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 ] + "" + @titres[ i ] + "" 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