modified: README.md
new file: c/CtrlCheckLinks.rb new file: c/Main.rb deleted: c/main.rb new file: fichier/dir/aa modified: m/ReadFile.rb modified: m/ReadFolder.rb modified: v/Vue1.rb deleted: v/VueError.rb new file: v/VueResult.rb
This commit is contained in:
parent
c01d230914
commit
03c8e5c2ca
@ -11,4 +11,8 @@ Requiert :
|
||||
|
||||
==========================================================================
|
||||
Lancement application :
|
||||
ruby c/main.rb
|
||||
ruby c/Main.rb
|
||||
|
||||
Emplacement fichiers :
|
||||
actuellement les fichiers que l'on souhaitent traiter doivent se trouver dans
|
||||
le dossier fichier/ (txt ou html)
|
||||
|
50
c/CtrlCheckLinks.rb
Normal file
50
c/CtrlCheckLinks.rb
Normal file
@ -0,0 +1,50 @@
|
||||
class CtrlCheckLinks
|
||||
def saisie
|
||||
liste_dir = "../fichier/".liste_rep
|
||||
#Va checher les fichiers et arborecenses dans le dossier fichier (Méthode dans ReadFolder)
|
||||
|
||||
Gtk.init
|
||||
@v1 = Vue1.new(liste_dir, self)
|
||||
|
||||
@v1.getWindow.show_all
|
||||
Gtk.main
|
||||
|
||||
return @urls
|
||||
end
|
||||
|
||||
def recupUrls(str)
|
||||
f = ReadFile.new(str)
|
||||
@urls = f.getUrls
|
||||
self.destructionFen
|
||||
end
|
||||
|
||||
def destructionFen
|
||||
@v1.getWindow.destroy
|
||||
Gtk.main_quit
|
||||
end
|
||||
|
||||
def verifLiens(urls)
|
||||
|
||||
resultats = ""
|
||||
urls.each { |n|
|
||||
p = Net::Ping::HTTP.new n , 80
|
||||
if p.ping?
|
||||
resultats += "#{n} est vivant\n"
|
||||
else
|
||||
resultats += "#{n} est mort\n"
|
||||
end
|
||||
}
|
||||
return resultats
|
||||
end
|
||||
|
||||
def vueResult(resultats)
|
||||
v = VueResult.new(resultats)
|
||||
v.getWindow.show_all
|
||||
Gtk.main
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
end
|
24
c/Main.rb
Executable file
24
c/Main.rb
Executable file
@ -0,0 +1,24 @@
|
||||
#! /usr/bin/ruby
|
||||
|
||||
#lib
|
||||
require 'gtk2' # lib graphique
|
||||
require 'net/ping' #lib netwotk
|
||||
|
||||
#include
|
||||
require './CtrlCheckLinks'
|
||||
require '../m/ReadFile'
|
||||
require '../m/ReadFolder'
|
||||
require '../v/Vue1'
|
||||
require '../v/VueResult'
|
||||
|
||||
while 1
|
||||
c = CtrlCheckLinks.new
|
||||
urls = c.saisie
|
||||
if(urls !=nil)
|
||||
resultats = c.verifLiens(urls)
|
||||
c.vueResult(resultats)
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
print "Termine\n"
|
50
c/main.rb
50
c/main.rb
@ -1,50 +0,0 @@
|
||||
#! /usr/bin/ruby
|
||||
|
||||
#lib
|
||||
require 'gtk2' # lib graphique
|
||||
require 'net/ping' #lib netwotk
|
||||
|
||||
#include
|
||||
require '../m/ReadFile'
|
||||
require '../m/ReadFolder'
|
||||
require '../v/Vue1'
|
||||
require '../v/VueError'
|
||||
|
||||
"../fichier/".liste_rep #à ajouter à vue 1
|
||||
|
||||
Gtk.init
|
||||
v1 = Vue1.new
|
||||
|
||||
v1.listenerBouton
|
||||
v1.listenerDestroy
|
||||
|
||||
v1.getWindow.show_all
|
||||
Gtk.main
|
||||
str = v1.getEntry
|
||||
str = "../fichier/" + str
|
||||
|
||||
if(File.exist?(str))
|
||||
f = ReadFile.new(str)
|
||||
url = f.getUrls
|
||||
else
|
||||
vd = VueError.new("Fichier inexistant")
|
||||
vd.getDialog.run
|
||||
vd.getDialog.destroy
|
||||
end
|
||||
|
||||
url.each { |n| # faire une vue affichage
|
||||
p = Net::Ping::HTTP.new n , 80
|
||||
if p.ping?
|
||||
puts n + " est vivant"
|
||||
else
|
||||
puts n + " est mort"
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
print "Termine\n"
|
1
fichier/dir/aa
Normal file
1
fichier/dir/aa
Normal file
@ -0,0 +1 @@
|
||||
daddad
|
@ -3,16 +3,14 @@ class ReadFile
|
||||
@fic = File.open(pFic, "r")
|
||||
end
|
||||
|
||||
|
||||
|
||||
def getALL
|
||||
def getALL #revoit tout le contenu d'un fichier sous forme d'une chaine de caractere
|
||||
all = @fic.read
|
||||
return all
|
||||
end
|
||||
|
||||
def getUrls
|
||||
def getUrls #sort les URLs d'un fichier
|
||||
txt = self.getALL
|
||||
url = txt.scan(/http[^\s]*/)
|
||||
url = txt.scan(/http[^\s]*/)
|
||||
return url
|
||||
end
|
||||
end
|
||||
|
@ -1,21 +1,33 @@
|
||||
class String
|
||||
class String #ajout de la méthode à la classe String
|
||||
def liste_rep(espacement = "")
|
||||
|
||||
#initialisation
|
||||
i=0
|
||||
fich_dir = [""]
|
||||
all_dir = ""
|
||||
liste_exclus = [".", ".."]
|
||||
d = Dir.open(self)
|
||||
|
||||
#sort les fichiers sans . et .. qui nous interresse pas
|
||||
liste_dir = d.sort - liste_exclus
|
||||
|
||||
liste_dir.each { |fichier|
|
||||
liste_dir.each { |fichier| #pour chaque fichier touvé
|
||||
case File.ftype(self+fichier)
|
||||
when "directory"
|
||||
puts "#{espacement} + #{fichier}/"
|
||||
when "directory" #si on trouve un dossier on l'ajoute et on cherche son contenu avec un apelle recursif
|
||||
fich_dir[i] = "#{espacement} + #{fichier}/ \n"
|
||||
espacement += " "
|
||||
(self + fichier + "/").liste_rep(espacement)
|
||||
fich_dir[i+1] = (self + fichier + "/").liste_rep(espacement)
|
||||
espacement = espacement[0, espacement.length-4]
|
||||
when "file"
|
||||
puts "#{espacement} - #{fichier}"
|
||||
i+=2
|
||||
when "file" # si c'est un fichier on l'ajoute simplement
|
||||
fich_dir[i] = "#{espacement} - #{fichier} \n"
|
||||
i+=1
|
||||
end
|
||||
|
||||
}
|
||||
|
||||
fich_dir.each { |n|
|
||||
all_dir += n
|
||||
}
|
||||
return all_dir; #return l'arboressence des fichiers sous forme d'une chaine de caractere
|
||||
end
|
||||
end
|
64
v/Vue1.rb
64
v/Vue1.rb
@ -1,18 +1,46 @@
|
||||
|
||||
class Vue1
|
||||
def initialize()
|
||||
def initialize(liste_dir, ctrl)
|
||||
@ctrl = ctrl
|
||||
#fenenetre generale
|
||||
@window = Gtk::Window.new
|
||||
@window.set_title('Saisie nom fichier')
|
||||
|
||||
#declaration des differents widgets
|
||||
vb = Gtk::VBox.new(true, 6)
|
||||
hb = Gtk::HBox.new(false, 6)
|
||||
val = Gtk::Label.new('Nom');
|
||||
hb.pack_start(val, false, true, 6)
|
||||
top = Gtk::HBox.new(false, 6)
|
||||
bot = Gtk::HBox.new(false, 6)
|
||||
|
||||
###Partie supérieur fenetre###
|
||||
|
||||
#Creation du label de l'arbo
|
||||
dir = Gtk::Label.new(liste_dir)
|
||||
top.pack_start(dir, false, true, 6)
|
||||
vb.pack_start(top)
|
||||
##############################
|
||||
|
||||
|
||||
###Partie Inferieur fenetre###
|
||||
|
||||
#creation label pour la saisie
|
||||
lab = Gtk::Label.new('Chemin')
|
||||
bot.pack_start(lab, false, true, 6)
|
||||
|
||||
#creation champ de saisie
|
||||
@nom = Gtk::Entry.new
|
||||
hb.pack_start(@nom, true, true)
|
||||
bot.pack_start(@nom, true, true)
|
||||
|
||||
#creation bouton de validation
|
||||
@b = Gtk::Button.new('OK')
|
||||
hb.pack_start(@b)
|
||||
vb.pack_start(hb)
|
||||
bot.pack_start(@b)
|
||||
vb.pack_start(bot)
|
||||
##############################
|
||||
|
||||
@window.add(vb)
|
||||
|
||||
# Abbonement fenetre au Listener
|
||||
self.listenerBouton
|
||||
self.listenerDestroy
|
||||
end
|
||||
|
||||
def getWindow
|
||||
@ -23,19 +51,27 @@ class Vue1
|
||||
return @chaine
|
||||
end
|
||||
|
||||
def listenerDestroy
|
||||
@window.signal_connect('destroy') {
|
||||
@window.destroy
|
||||
Gtk.main_quit
|
||||
def listenerDestroy # Listener fermeture fenetre
|
||||
@window.signal_connect('delete_event') {
|
||||
@ctrl.destructionFen
|
||||
}
|
||||
end
|
||||
|
||||
def listenerBouton
|
||||
def listenerBouton #listener appuie validation
|
||||
@chaine = " "
|
||||
@b.signal_connect('clicked'){
|
||||
@chaine = @nom.text.to_s
|
||||
@window.destroy
|
||||
Gtk.main_quit
|
||||
@chaine = "../fichier/" + @chaine
|
||||
if(File.exist?(@chaine))
|
||||
@ctrl.recupUrls(@chaine)
|
||||
else
|
||||
d = Gtk::MessageDialog.new(Gtk::Window.new, Gtk::Dialog::DESTROY_WITH_PARENT,
|
||||
Gtk::MessageDialog::ERROR,
|
||||
Gtk::MessageDialog::BUTTONS_CLOSE,
|
||||
"Erreur : Fichier inexistant")
|
||||
d.run
|
||||
d.destroy
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
@ -1,12 +0,0 @@
|
||||
class VueError
|
||||
def initialize(pMsgErr)
|
||||
@d = Gtk::MessageDialog.new(Gtk::Window.new, Gtk::Dialog::DESTROY_WITH_PARENT,
|
||||
Gtk::MessageDialog::ERROR,
|
||||
Gtk::MessageDialog::BUTTONS_CLOSE,
|
||||
"Erreur : #{pMsgErr}")
|
||||
end
|
||||
|
||||
def getDialog
|
||||
return @d
|
||||
end
|
||||
end
|
31
v/VueResult.rb
Normal file
31
v/VueResult.rb
Normal file
@ -0,0 +1,31 @@
|
||||
class VueResult
|
||||
def initialize(liste_result)
|
||||
@window = Gtk::Window.new
|
||||
@window.set_title('Resultats')
|
||||
|
||||
vb = Gtk::VBox.new(true, 6)
|
||||
vh = Gtk::HBox.new(false, 6)
|
||||
|
||||
if(liste_result != "")
|
||||
res = Gtk::Label.new(liste_result)
|
||||
else
|
||||
res = Gtk::Label.new("Pas de liens trouves")
|
||||
end
|
||||
vh.pack_start(res, false, true, 6)
|
||||
vb.pack_start(vh)
|
||||
|
||||
@window.add(vb)
|
||||
|
||||
self.listenerDestroy
|
||||
end
|
||||
|
||||
def getWindow
|
||||
return @window
|
||||
end
|
||||
def listenerDestroy
|
||||
@window.signal_connect('destroy') {
|
||||
@window.destroy
|
||||
Gtk.main_quit
|
||||
}
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user