modified: c/CtrlCheckLinks.rb
new file: c/CtrlHistoLink.rb modified: c/Main.rb modified: fichier/haut.html deleted: groupe3.html modified: m/ReadFile.rb deleted: m/ReadFolder.rb new file: sauv/aa new file: sauv/ff modified: v/Vue1.rb new file: v/VueHisto.rb new file: v/VueMenu.rb modified: v/VueResult.rb
This commit is contained in:
parent
e3cd387365
commit
7df4c9c289
@ -1,22 +1,23 @@
|
||||
# Controleur de la vérification de la validité des liens ainsi que les vues correspondantes
|
||||
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
|
||||
#Controleur de la saisie pour vérification de lien
|
||||
def saisie(type)
|
||||
@v1 = Vue1.new(self, 'Saisie nom fichier', type) #creation vue principal
|
||||
@v1.getWindow.show_all # affichage
|
||||
Gtk.main
|
||||
|
||||
return @urls
|
||||
end
|
||||
|
||||
def recupUrls(str)
|
||||
#Controleur recuperation et verification de liens dans 1 fichiers
|
||||
def recupUrls(str)
|
||||
f = ReadFile.new(str)
|
||||
@urls = f.getUrls
|
||||
self.vueResult(self.verifLiens(@urls), str)
|
||||
s = CtrlHistoLink.new #on enregistre dans l'histo le verif du lien
|
||||
s.sauv(str, @urls)
|
||||
return @urls
|
||||
end
|
||||
|
||||
def recupUrlsDoss(str)
|
||||
#Controleur recuperation et verification de liens dans 1 dossier
|
||||
def recupUrlsDoss(str)
|
||||
d = Dir.open(str)
|
||||
liste_exclus = [".", ".."]
|
||||
liste_dir = d.sort - liste_exclus
|
||||
@ -24,18 +25,18 @@ class CtrlCheckLinks
|
||||
if (File.ftype(str + "/" + fichier) == "file")
|
||||
self.recupUrls(str + "/" + fichier)
|
||||
end
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
def destructionFen
|
||||
#Controleur permettant de detruire la vue principal
|
||||
def destructionFen
|
||||
@v1.getWindow.destroy
|
||||
Gtk.main_quit
|
||||
end
|
||||
|
||||
def verifLiens(urls)
|
||||
resultats = ""
|
||||
urls.each { |n|
|
||||
p = Net::Ping::HTTP.new n , 80
|
||||
#Controleur de verification de liens
|
||||
def verifLiens(urls)
|
||||
resultats = ""
|
||||
urls.each { |n| # pour chaque urls on realise un ping -> mise des resultats en chaine de caractere
|
||||
p = Net::Ping::HTTP.new n , 80, 5
|
||||
if p.ping?
|
||||
resultats += "#{n} est vivant\n"
|
||||
else
|
||||
@ -43,16 +44,13 @@ class CtrlCheckLinks
|
||||
end
|
||||
}
|
||||
return resultats
|
||||
|
||||
end
|
||||
|
||||
def vueResult(resultats, nom)
|
||||
#Controleur permettant d'afficher la vue secondaire d'affichage de resultat
|
||||
def vueResult(resultats, nom)
|
||||
v = VueResult.new(resultats, nom)
|
||||
v.getWindow.show_all
|
||||
Gtk.main
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
end
|
30
c/CtrlHistoLink.rb
Normal file
30
c/CtrlHistoLink.rb
Normal file
@ -0,0 +1,30 @@
|
||||
#Classe permettant de g"rer l'historique de fichier traité
|
||||
class CtrlHistoLink
|
||||
#Saisie pour vérification de lien stocké en historique
|
||||
def saisie
|
||||
@v = VueHisto.new(self,"Historique") #creation vue
|
||||
@v.getWindow.show_all # affichage
|
||||
Gtk.main
|
||||
return @urls
|
||||
end
|
||||
#Sauvegarde les liens dans un fichier pour historique
|
||||
def sauv(fileName, urls)
|
||||
fileName = File.basename(fileName)
|
||||
f = File.new("../sauv/#{fileName}", "w+")
|
||||
f.write(urls)
|
||||
f.close
|
||||
end
|
||||
|
||||
#Permet de rejouer les liens d'un fichier
|
||||
def rejouer(fileName)
|
||||
r = CtrlCheckLinks.new
|
||||
@urls = r.recupUrls(fileName)
|
||||
end
|
||||
|
||||
#Controleur permettant de detruire la vue historique
|
||||
def destructionFen
|
||||
@v.getWindow.destroy
|
||||
Gtk.main_quit
|
||||
end
|
||||
|
||||
end
|
47
c/Main.rb
47
c/Main.rb
@ -6,15 +6,50 @@ require 'net/ping' #lib netwotk
|
||||
|
||||
#include
|
||||
require './CtrlCheckLinks'
|
||||
require './CtrlHistoLink'
|
||||
require '../m/ReadFile'
|
||||
require '../m/ReadFolder'
|
||||
require '../v/Vue1'
|
||||
require '../v/VueResult'
|
||||
require '../v/VueMenu'
|
||||
require '../v/VueHisto'
|
||||
|
||||
c = CtrlCheckLinks.new
|
||||
urls = c.saisie
|
||||
while urls!=nil
|
||||
c = CtrlCheckLinks.new
|
||||
urls = c.saisie
|
||||
#Classe principal du controleur main
|
||||
class Main
|
||||
# Controleur du menu de départ
|
||||
def menu
|
||||
|
||||
@v = VueMenu.new(self,"Menu")
|
||||
@v.getWindow.show_all # affichage
|
||||
Gtk.main
|
||||
end
|
||||
|
||||
# Controleur historique
|
||||
def histo
|
||||
c = CtrlHistoLink.new
|
||||
urls = c.saisie
|
||||
end
|
||||
|
||||
# Controleur vérification d'un fichier
|
||||
def newVerifFile
|
||||
c = CtrlCheckLinks.new
|
||||
urls = c.saisie(1)
|
||||
end
|
||||
|
||||
# Controleur vérification d'un dossier
|
||||
def newVerifDossier
|
||||
c = CtrlCheckLinks.new
|
||||
urls = c.saisie(0)
|
||||
end
|
||||
|
||||
# Controleur permettant de detruire la vue menu
|
||||
def destructionMenu
|
||||
@v.getWindow.destroy
|
||||
Gtk.main_quit
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
c = Main.new
|
||||
c.menu
|
||||
|
||||
print "Termine\n"
|
@ -13,9 +13,9 @@
|
||||
</div>
|
||||
<div id="menu">
|
||||
<ul>
|
||||
<li><a href="http://index.php">Accueil</a></li>
|
||||
<li><a href="http://consultprod.php">Consultation des promotions et nouveautés</a></li>
|
||||
<li><a href="http://consultcat.php">Consultation des produits par catégorie</a></li>
|
||||
<li><a href="http://recherche.php">Recherche d’un produit à commander (client nouveau)</a></ul>
|
||||
<li><a href="http://google.fr">Accueil</a></li>
|
||||
<li><a href="http://cdz.dqz">Consultation des promotions et nouveautés</a></li>
|
||||
<li><a href="https://google.com">Consultation des produits par catégorie</a></li>
|
||||
<li><a href="http://a.d">Recherche d’un produit à commander (client nouveau)</a></ul>
|
||||
</div>
|
||||
<div id="contenu">
|
||||
|
1860
groupe3.html
1860
groupe3.html
File diff suppressed because one or more lines are too long
@ -1,16 +1,18 @@
|
||||
#Classe permettant l'acces et la recuperation des données dans les fichiers
|
||||
class ReadFile
|
||||
def initialize(pFic)
|
||||
#Ouverture d'un fichier en lecture
|
||||
def initialize(pFic)
|
||||
@fic = File.open(pFic, "r")
|
||||
end
|
||||
|
||||
def getALL #revoit tout le contenu d'un fichier sous forme d'une chaine de caractere
|
||||
#Revoit tout le contenu d'un fichier sous forme d'une chaine de caractere
|
||||
def getALL
|
||||
all = @fic.read
|
||||
return all
|
||||
end
|
||||
|
||||
def getUrls #sort les URLs d'un fichier
|
||||
#Sort les URLs d'un fichier
|
||||
def getUrls
|
||||
txt = self.getALL
|
||||
url = txt.scan(/http[^\s]*/)
|
||||
url = URI::extract(txt, /http(s)?/)
|
||||
return url
|
||||
end
|
||||
end
|
||||
|
@ -1,33 +0,0 @@
|
||||
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| #pour chaque fichier touvé
|
||||
case File.ftype(self+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 += " "
|
||||
fich_dir[i+1] = (self + fichier + "/").liste_rep(espacement)
|
||||
espacement = espacement[0, espacement.length-4]
|
||||
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
|
1
sauv/ff
Normal file
1
sauv/ff
Normal file
@ -0,0 +1 @@
|
||||
["https://www.google.fr", "http://www.ndqjkdjqdkjz.com", "http://www.a.com"]
|
59
v/Vue1.rb
59
v/Vue1.rb
@ -1,33 +1,28 @@
|
||||
|
||||
# Classe creation de la vue de sélection de fichier ou dossier
|
||||
class Vue1
|
||||
def initialize(liste_dir, ctrl)
|
||||
# Creation de la vue
|
||||
def initialize(ctrl, title, type)
|
||||
@ctrl = ctrl
|
||||
#fenenetre generale
|
||||
@window = Gtk::Window.new
|
||||
@window.set_title('Saisie nom fichier')
|
||||
@window.set_title(title)
|
||||
|
||||
#declaration des differents widgets
|
||||
vb = Gtk::VBox.new(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')
|
||||
lab = Gtk::Label.new('Chemin :')
|
||||
bot.pack_start(lab, false, true, 6)
|
||||
|
||||
#creation champ de saisie
|
||||
@nom = Gtk::Entry.new
|
||||
#@nom = Gtk::Entry.new
|
||||
if (type == 1)
|
||||
@nom = Gtk::FileChooserButton.new("choisir un fichier", Gtk::FileChooser::ACTION_OPEN)
|
||||
else
|
||||
@nom = Gtk::FileChooserButton.new("choisir un dossier ", Gtk::FileChooser::ACTION_SELECT_FOLDER)
|
||||
end
|
||||
@nom.set_current_folder("../fichier")
|
||||
bot.pack_start(@nom, true, true)
|
||||
|
||||
#creation bouton de validation
|
||||
@ -43,25 +38,27 @@ class Vue1
|
||||
self.listenerDestroy
|
||||
end
|
||||
|
||||
def getWindow
|
||||
def getWindow #:nodoc:#
|
||||
return @window
|
||||
end
|
||||
|
||||
def getEntry
|
||||
def getEntry #:nodoc:#
|
||||
return @chaine
|
||||
end
|
||||
|
||||
def listenerDestroy # Listener fermeture fenetre
|
||||
@window.signal_connect('delete_event') {
|
||||
@ctrl.destructionFen
|
||||
# Listener fermeture fenetre
|
||||
def listenerDestroy
|
||||
@window.signal_connect('destroy') {
|
||||
@ctrl.destructionFen
|
||||
}
|
||||
end
|
||||
|
||||
def listenerBouton #listener appuie validation
|
||||
|
||||
#Listener appuie bouton validation
|
||||
def listenerBouton
|
||||
@chaine = " "
|
||||
@b.signal_connect('clicked'){
|
||||
@chaine = @nom.text.to_s
|
||||
if (@chaine =="")
|
||||
@chaine = @nom.filename
|
||||
if (@chaine =="") #gestion saisie vide
|
||||
m = Gtk::MessageDialog.new(Gtk::Window.new, Gtk::Dialog::DESTROY_WITH_PARENT,
|
||||
Gtk::MessageDialog::ERROR,
|
||||
Gtk::MessageDialog::BUTTONS_CLOSE,
|
||||
@ -69,16 +66,12 @@ class Vue1
|
||||
m.run
|
||||
m.destroy
|
||||
else
|
||||
@chaine = "../fichier/" + @chaine
|
||||
if(File.directory?(@chaine))
|
||||
|
||||
if(File.directory?(@chaine)) #si c'est un dossier utilisation du controleur adéquat
|
||||
@ctrl.recupUrlsDoss(@chaine)
|
||||
|
||||
|
||||
else
|
||||
if(File.exist?(@chaine))
|
||||
if(File.exist?(@chaine)) #si c'est un fichier existant utilisation du controleur adéquat
|
||||
@ctrl.recupUrls(@chaine)
|
||||
else
|
||||
else #gestion saisie invalide
|
||||
d = Gtk::MessageDialog.new(Gtk::Window.new, Gtk::Dialog::DESTROY_WITH_PARENT,
|
||||
Gtk::MessageDialog::ERROR,
|
||||
Gtk::MessageDialog::BUTTONS_CLOSE,
|
||||
|
78
v/VueHisto.rb
Normal file
78
v/VueHisto.rb
Normal file
@ -0,0 +1,78 @@
|
||||
# Classe creation de la vue permettant d'aceder a l'historique
|
||||
class VueHisto
|
||||
# Creation de la vue
|
||||
def initialize(ctrl, title)
|
||||
@ctrl = ctrl
|
||||
#fenenetre generale
|
||||
@window = Gtk::Window.new
|
||||
@window.set_title(title)
|
||||
|
||||
#declaration des differents widgets
|
||||
vb = Gtk::VBox.new(true, 6)
|
||||
bot = Gtk::HBox.new(false, 6)
|
||||
|
||||
#creation label pour la saisie
|
||||
lab = Gtk::Label.new('Chemin du fichier a rejouer :')
|
||||
bot.pack_start(lab, false, true, 6)
|
||||
|
||||
#creation champ de saisie
|
||||
@nom = Gtk::FileChooserButton.new("choisir un fichier", Gtk::FileChooser::ACTION_OPEN)
|
||||
@nom.set_current_folder("../sauv")
|
||||
bot.pack_start(@nom, true, true)
|
||||
|
||||
#creation bouton de validation
|
||||
@b = Gtk::Button.new('OK')
|
||||
bot.pack_start(@b)
|
||||
vb.pack_start(bot)
|
||||
##############################
|
||||
|
||||
@window.add(vb)
|
||||
|
||||
# Abbonement fenetre au Listener
|
||||
self.listenerBouton
|
||||
self.listenerDestroy
|
||||
end
|
||||
|
||||
def getWindow #:nodoc:#
|
||||
return @window
|
||||
end
|
||||
|
||||
def getEntry #:nodoc:#
|
||||
return @chaine
|
||||
end
|
||||
|
||||
# Listener fermeture fenetre
|
||||
def listenerDestroy
|
||||
@window.signal_connect('destroy') {
|
||||
@ctrl.destructionFen
|
||||
}
|
||||
end
|
||||
|
||||
#Listener appuie bouton validation
|
||||
def listenerBouton
|
||||
@chaine = " "
|
||||
@b.signal_connect('clicked'){
|
||||
@chaine = @nom.filename
|
||||
if (@chaine =="") #gestion saisie vide
|
||||
m = Gtk::MessageDialog.new(Gtk::Window.new, Gtk::Dialog::DESTROY_WITH_PARENT,
|
||||
Gtk::MessageDialog::ERROR,
|
||||
Gtk::MessageDialog::BUTTONS_CLOSE,
|
||||
"Erreur : Veuillez saisir un fichier !")
|
||||
m.run
|
||||
m.destroy
|
||||
else
|
||||
if(File.exist?(@chaine)) #si c'est un fichier existant utilisation du controleur adéquat
|
||||
@ctrl.rejouer(@chaine)
|
||||
else #gestion saisie invalide
|
||||
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
|
||||
end
|
66
v/VueMenu.rb
Normal file
66
v/VueMenu.rb
Normal file
@ -0,0 +1,66 @@
|
||||
#Classe creation vue du menu
|
||||
class VueMenu
|
||||
# Creation de la vue
|
||||
def initialize(ctrl, title)
|
||||
@ctrl = ctrl
|
||||
#fenenetre generale
|
||||
@window = Gtk::Window.new
|
||||
@window.set_title(title)
|
||||
|
||||
#declaration des differents widgets
|
||||
vb = Gtk::VBox.new(true, 6)
|
||||
top = Gtk::HBox.new(false, 6)
|
||||
|
||||
|
||||
|
||||
#creation boutons
|
||||
@newFile = Gtk::Button.new('Nouveau test fichier')
|
||||
@newDoss = Gtk::Button.new('Nouveau test dossier')
|
||||
@histo = Gtk::Button.new('Histo')
|
||||
|
||||
top.pack_start(@newFile)
|
||||
top.pack_start(@newDoss)
|
||||
top.pack_start(@histo)
|
||||
vb.pack_start(top)
|
||||
##############################
|
||||
|
||||
@window.add(vb)
|
||||
|
||||
# Abbonement fenetre au Listener
|
||||
self.listenerBoutonNewFile
|
||||
self.listenerBoutonNewDossier
|
||||
self.listenerBoutonHisto
|
||||
self.listenerDestroy
|
||||
end
|
||||
|
||||
def getWindow #:nodoc:#
|
||||
return @window
|
||||
end
|
||||
#Listener appuie bouton nouvelle vérification de 1 fichier
|
||||
def listenerBoutonNewFile
|
||||
@newFile.signal_connect('clicked'){
|
||||
@ctrl.newVerifFile
|
||||
}
|
||||
end
|
||||
#Listener appuie bouton validation nouvelle vérification de 1 dossier
|
||||
def listenerBoutonNewDossier
|
||||
@newDoss.signal_connect('clicked'){
|
||||
@ctrl.newVerifDossier
|
||||
}
|
||||
end
|
||||
#Listener appuie bouton validation pour rejouer un fichier dans de l'historique
|
||||
def listenerBoutonHisto
|
||||
@histo.signal_connect('clicke d'){
|
||||
@ctrl.histo
|
||||
}
|
||||
end
|
||||
# Listener fermeture fenetre Menu
|
||||
def listenerDestroy
|
||||
@window.signal_connect('destroy') {
|
||||
@ctrl.destructionMenu
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
@ -1,11 +1,16 @@
|
||||
# Classe creation de la vue des resultats
|
||||
class VueResult
|
||||
# Creation de la vue
|
||||
def initialize(liste_result, nom)
|
||||
#fenenetre generale
|
||||
@window = Gtk::Window.new
|
||||
@window.set_title(nom)
|
||||
|
||||
#declaration des differents widgets
|
||||
vb = Gtk::VBox.new(true, 6)
|
||||
vh = Gtk::HBox.new(false, 6)
|
||||
|
||||
#creation label resultat
|
||||
if(liste_result != "")
|
||||
res = Gtk::Label.new(liste_result)
|
||||
else
|
||||
@ -14,18 +19,20 @@
|
||||
vh.pack_start(res, false, true, 6)
|
||||
vb.pack_start(vh)
|
||||
|
||||
# Abbonement fenetre au Listener
|
||||
@window.add(vb)
|
||||
self.listenerDestroy
|
||||
end
|
||||
|
||||
def getWindow
|
||||
def getWindow #:nodoc:#
|
||||
return @window
|
||||
end
|
||||
|
||||
def listenerDestroy
|
||||
# Listener fermeture Resultat
|
||||
def listenerDestroy
|
||||
@window.signal_connect('destroy') {
|
||||
@window.destroy
|
||||
Gtk.main_quit
|
||||
@window.destroy
|
||||
Gtk.main_quit
|
||||
}
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user