def supprlien(self): row = self.tablewidget.currentRow() col = 1 # colonne de l'url item = self.tablewidget.item(row, col) # self.tablewidget.cellClicked.connect(self.cellclick) monurl = item.text() marep = self.rechercheurl(monurl) if marep == 0: print("Le lien n'est pas dans la base de données.") else: print("Le lien est dans la BDD") Gbdd.supprimbdd(self, monurl) self.tablewidget.removeRow(row)
def liretoutebdd(self): """Affichage de la bdd complète ou partielle.""" print("1 -------------------- Affichage du host, de l'URL et du titre") print( "2 -------------------- Affichage du host, de l'url, de la situation, depreciation, attente supression" ) print("3 -------------------- Affichage du titre et du scraping") repon = "o" while repon == "o": reponse = input("Que voulez-vous afficher ?") if reponse == "1": affichlist1 = Gbdd.recupbddaffich1(self) print( " host | url | Titre " " titre ") for i in affichlist1: print(f"{i[0]} | {i[1]} | {i[2]} | ") elif reponse == "2": affichlist2 = Gbdd.recupbddaffich2(self) print( " host | url | " " situation | Depreciation | suppression") for i in affichlist2: print( f"{i[0]} | {i[1]} | {i[2]} | {i[3]} | {i[4]}" ) elif reponse == "3": affichlist3 = Gbdd.recupbddaffich3(self) print( " url | titre_scrap | description_scrap" " | h1 | h2 | h3" " | h4 | strong | " " mots_clef | catégorie | mes_mots_clefs |" ) for i in affichlist3: print( f"{i[0]} | {i[1]} | {i[2]} | {i[3]} | {i[4]} | {i[5]} | {i[6]} | {i[7]} | " f" {i[8]} | {i[9]} | {i[10]} ") repon = input('Voulez vous continuer ? O/N : ')
def majbdd(self): """Fonction pour vérifier les liens et faire le scraping à la création de la BDD""" # récupérer le nombre d'enregistrement total de ma table liens_meta pour faire une boucle bdgesterr = Gbdd.recupbdd(self) for idbdd in bdgesterr: # pour chaque enregistrement de ma BDD, je vais vérifier si le lien est valide print( f"données de la BDD sur la gestion des erreurs de liens : {idbdd}" ) monurl = idbdd[1] mondepre = idbdd[3] situation, depreciation = Glw.veriflien(self, monurl, mondepre) listgesterr = [idbdd[0], situation, depreciation, idbdd[4]] print( f"le nouvel enregistrement, pour la gestion des liens est : {listgesterr}" ) # envoie de listgesterr dans la bdd Gbdd.envoigesterreur(self, listgesterr) # Maintenant que les liens sont vérifiés, je peux maintenant m'occuper de 'scraper' les liens # si la situation du lien est correcte, alors on peut scraper, sinon, on passe son chemin if listgesterr[1] == "tout va bien": self.lientitre, self.liendescr, self.lienh1, self.lienh2, self.lienh3, self.lienh4, self.lienstrong, \ self.lienaside, self.lientag = Glsc.scraping(self, monurl) listgestscrap = [ idbdd[0], self.lientitre, self.liendescr, self.lienh1, self.lienh2, self.lienh3, self.lienh4, self.lienstrong, self.lienaside, self.lientag ] print( f"le nouvel enregistrement est, pour la gestion du scraping : {listgestscrap}" ) # envoie de listgestscrap dans la bdd Gbdd.envoigestscrap(self, listgestscrap)
def __init__(self): super(Maingestionlien, self).__init__() self.lientitre = "" self.liendescr = "" self.lienh1 = "" self.h2 = [] self.lienh2 = "" self.h3 = [] self.lienh3 = "" self.h4 = [] self.lienh4 = "" self.strong = [] self.lienstrong = "" self.aside = [] self.lienaside = "" self.tag = [] self.lientag = "" # lancement de l'interface principale self.setupuiprin(self) # English : check if my database exists if it doesn't, it is created. if not os.path.isfile(utl.CHEMBD): self.setupuidemar(self) print("Dans maingestionlien :\ndemande de création de la bdd") Gbdd.creabd(self) # Trouver le dossier contenant la base de données de Firefox (son nom varie) # English : Find the folder containing the Firefox database (its name varies) Gbdd.trouvdosdefault(self) # récupérer les données de la BDD de Firefox pour remplir ma propre BDD # English : retrieve the data from the Firefox database to fill in my own database Gbdd.recupbddff(self) # Remplir ma BDD avec les données de Firefox # English : Fill my database with Firefox data Gbdd.envoidonneefirefox(self) # Vérification de la validité des liens et su scraping self.majbdd() #self.interface() else: self.laprincipal1.setText("La base de donnée existe ....") self.selectbdd_hut() self.connectioninterface()
def cherchemotcle(self): motclef = Interdemar.uirecherchemotcle(self, self.fenetregestionlien) affichlist1, comptenregist = Gbdd.cherchebdd1(self, motclef) self.affichbdd_hut(affichlist1, comptenregist)
def ajoutlien(self): """Cette fonction permet de rajouter un lien à la BDD grâce à l'intrface graphique. Une fois que l'url a été saisie et validée, le programme va chercher dans la BDD si l'url existe déjà. Si ce n'est pas le cas, l'url est rajouté à la BDD et le programme rempli les renseignements manquants.""" # récupération de l'url ajoutée monurl = self.leiau1.text() self.fenetreajouturl.close() self.laprincipal1.setText( "Récupération de l'url que l'on souhaite ajouter à la BDD") # Envoi de l'url saisie par l'utilisateur dans la fonction de recherche d'url dans la BDD marep = self.rechercheurl(monurl) if marep == 0: # Si le lien n'est pas dans la base de données, le logiciel va chercher à remplir les cases manquantes pour remplir la BDD self.laprincipal1.setText( "Tout est ok, le lien n'est pas déjà dans la BDD") print("Recherche prefixe et host.....") hachurl = monurl.split("/") prefixeurl = hachurl[0] + "//" hosturl = hachurl[2] # print(f"Le prefixe de l'url est {prefixeurl} et son host est {hosturl}") donnurl1 = [monurl, prefixeurl, hosturl] self.laprincipal1.setText("Recherche de la validité du lien ....") situation, depreciation = Glw.veriflien(self, monurl, mondepre=0) self.laprincipal1.setText( f"La situation du lien est : {situation} et sa dépréciation vaut : {depreciation}" ) donnurl2 = [situation, depreciation] print("Recherche d'informations sur le site.....") if situation == "tout va bien": self.lientitre, self.liendescr, self.lienh1, self.lienh2, self.lienh3, self.lienh4, self.lienstrong, \ self.lienaside, self.lientag = Glsc.scraping(self, monurl) donnurl3 = [ self.lientitre, self.liendescr, self.lienh1, self.lienh2, self.lienh3, self.lienh4, self.lienstrong, self.lienaside, self.lientag ] self.laprincipal1.setText( f"le nouvel enregistrement est, pour la gestion du scraping : {donnurl3}" ) print("lancement de la fonction pou ajouter un lien .......") Gbdd.ajoutbdd(self, donnurl1, donnurl2, donnurl3) # ajout d'un enregistrement au QTableView pour l'interface courte. Voir pour les autres interfaces. row = (self.tablewidget.rowCount()) self.tablewidget.insertRow(row) column = (self.tablewidget.columnCount()) print(f"row : {row}, column : {column} ") self.tablewidget.setItem( row, 0, QtWidgets.QTableWidgetItem(donnurl1[2])) self.tablewidget.setItem( row, 1, QtWidgets.QTableWidgetItem(donnurl1[0])) self.tablewidget.setItem( row, 2, QtWidgets.QTableWidgetItem(donnurl3[0])) else: self.lienmessagerapide( "Le lien est corrumpu et ne sera pas pris en compte") else: self.lienmessagerapide("Le lien existe déjà")
def selectbdd_hut(self): affichlist1, comptenregist = Gbdd.recupbddaffich1(self) print(f"affichlist1: {affichlist1}") self.affichbdd_hut(affichlist1, comptenregist)