All pastes #30428 Raw Edit

Stuff

public text v1 · immutable
#30428 ·published 2005-11-23 00:33 UTC
rendered paste body
#!/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