Exemple #1
0
 def ajouteralabdd(self, page):
     # Suppression d'un modèle chiant pour le calcul de date
     p = page.text.replace('{{1er}}', '1').replace('{{er}}', '')
     # Récupération des infos
     n = self.re_modele.search(p)
     if n:
         mod = BeBot.modeletodic(n.group(0))
         categorie = n.group(2).replace('_', ' ')
         # Remise au propre de la casse
         categorie = categorie[0].upper() + categorie[1:].lower()
         date = datetime.datetime(1970, 1, 1)
         if 'date' in mod:
             o = self.re_date.search(mod['date'])
             if o:
                 try:
                     jour = int(o.group(1))
                     mois = BeBot.moistoint(o.group(2))
                     annee = int(o.group(3))
                 except:
                     pywikibot.error("Problème de conversion de la date '%s' sur [[%s]]" % (o.group(0), page.title()))
                     return False
                 date = datetime.datetime(annee, mois, jour)
             else:
                 pywikibot.error("Impossible de reconnaitre le format de date pour %s" % page.title())
                 return False
         # Sauvegarde
         curseur = self.conn.cursor()
         req = 'INSERT INTO %s ' % self.nom_base \
             + '(titre, label, date) VALUES ("%s", "%s", "%s")' \
             % (page.title(), categorie, date)
         if self.debug:
             #pywikibot.output("Ajout de %s" % page.title())
             print('.',end="",flush=True)
             return
         try:
             curseur.execute(req)
         except sqlite3.Error as e:
             pywikibot.error("Erreur lors de l'INSERT :\n%s" % (e.args[0]))
         self.conn.commit()
         return True
     if page.namespace() == 0:
         pywikibot.error("Impossible de trouver le modèle AdQ/BA sur l'article %s" % page.title())
     return False