コード例 #1
0
    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)
コード例 #2
0
    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 : ')
コード例 #3
0
    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)
コード例 #4
0
    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()
コード例 #5
0
    def cherchemotcle(self):

        motclef = Interdemar.uirecherchemotcle(self, self.fenetregestionlien)
        affichlist1, comptenregist = Gbdd.cherchebdd1(self, motclef)
        self.affichbdd_hut(affichlist1, comptenregist)
コード例 #6
0
    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à")
コード例 #7
0
    def selectbdd_hut(self):

        affichlist1, comptenregist = Gbdd.recupbddaffich1(self)
        print(f"affichlist1: {affichlist1}")
        self.affichbdd_hut(affichlist1, comptenregist)