def supprimer(self, page):
        """ Supprime la page et nettoie les pages liées
        """
        t = page.title().encode('ascii', 'ignore')
        titres = [ t ]
        titres.append(t.replace('Discussion:', 'Discuter:'))
        for b in page.backlinks(filterRedirects=True): # On trouve les différents noms de la page
            t = b.title().encode('ascii', 'ignore')
            titres.append(t)
            titres.append(t.replace('Discussion:', 'Discuter:'))
        # PdDis
        disc = pywikibot.Page(self.site, page.title().replace('/Traduction', ''))
        if disc.exists(): # Nettoyage de PdDis
            self.suppr_mod(disc, titres)

        for b in page.embeddedin(): # nettoyage des inclusions
            self.suppr_mod(b, titres)
        for b in page.backlinks(followRedirects=True): # Nettoyage des redirections
            if b.isRedirectPage():
                BeBot.delete(b, self.resume+" : Redirection d'une traduction abandonnée", debug=self.debug)
                self.stats['suppr'] += 1

        #taille = BeBot.taille_page(page, 1) # < 2800
        #taille = 7777
        taille = 0
        m = self.re_discus.search(page.text)
        if m:
            taille = len(m.group(1))
        if taille < 260:
            BeBot.delete(page, self.resume+' : Traduction abandonnée', debug=self.debug)
            self.stats['suppr'] += 1
        else:
            pywikibot.output("><> Discussion détectée sur : http://fr.wikipedia.org/wiki/%s -- taille:%d" % (page.title(), taille))
            self.gros_suivi.append(page.title())
#!/usr/bin/python
# -*- coding: utf-8  -*-
import re, sys
import BeBot
import pywikibot

"""
    Supprime un modèle et ses appels d'inclusion
"""

site = pywikibot.getSite()
nom = u"Demande de traduction"
# renom = re.compile('{{'+nom+'}}', re.IGNORECASE|re.MULTILINE)
renom = re.compile("{{" + nom + "\|?[^}/]*?}}", re.IGNORECASE | re.MULTILINE)
modele = pywikibot.Page(site, u"Modèle:" + nom)
if not modele.exists():
    pywikibot.error(u"Le modèle {nom} n'existe pas".format(nom=nom))
    sys.exit(2)

debug = True
# Retrait des transclusions
for b in modele.getReferences(follow_redirects=False, onlyTemplateInclusion=True, content=True, total=9):
    a = renom.sub(r"", b.text)
    BeBot.diff(b.text, a)
    b.text = a
    BeBot.save(b, commentaire=u'Retrait du modèle "{nom}"'.format(nom=nom), debug=debug)
BeBot.delete(modele, u'Retrait du modèle "{nom}"'.format(nom=nom), debug=debug)
def suppr_cat(cat):
    for b in cat.subcategories():
        suppr_cat(b)
    BeBot.delete(cat, comment.format(nom=cat.title()), debug=debug)
site = pywikibot.getSite()
nom = "Utilisateur Traduction"
renom = re.compile("{{" + nom + "}}", re.IGNORECASE)
nom2 = "Traduction"
# renom2 = re.compile(u'(\{\{Bo(î|i)te\s*(utilisateur|babel)[^\}]*?)\|\s*'+nom2+u'(\s*|/\w{2})([^\}]*\}\})', re.IGNORECASE|re.UNICODE|re.MULTILINE)
renom2 = re.compile(
    u"(\{\{Bo(î|i)te\s*(utilisateur|babel)[^\}]*?)\|\s*" + nom2 + u"\s*([^\}/]?[^\}]*?\}\})",
    re.IGNORECASE | re.UNICODE | re.MULTILINE,
)
modele = pywikibot.Page(site, u"Modèle:" + nom)
if not modele.exists():
    pywikibot.error(u"La BU {nom} n'existe pas".format(nom=nom))
    sys.exit(2)

# Retrait des transclusions
for b in modele.getReferences(follow_redirects=False, onlyTemplateInclusion=True, content=True):
    # remp = r''
    remp = r"{{Utilisateur Projet/Traduction}}"
    a = renom.sub(remp, b.text)
    a = renom2.sub(r"\1|Projet/Traduction\4", a)
    b.text = a
    BeBot.save(
        b,
        commentaire=u'Retrait du modèle "{nom}" suite à la restructuration du [[Projet:Traduction]]'.format(nom=nom),
        debug=False,
    )
BeBot.delete(
    modele, u'Retrait du modèle "{nom}" suite à la restructuration du [[Projet:Traduction]]'.format(nom=nom), debug=True
)
#!/usr/bin/python
# -*- coding: utf-8  -*-
import BeBot
import pywikibot

"""
    Supprime les sous-pages d'une page
"""

prefix="Traduction/*/Projet"
espace = 102 # Projet
#espace = 10 # Modèle
site = pywikibot.getSite()
ppg = site.allpages(prefix=prefix, namespace=espace, content=False)
for p in ppg:
    BeBot.delete(p, u'Restructuration du [[Projet:Traduction]]', debug=False)