Usuari:VriuBot/separadors.py

De Viccionari
Salta a la navegació Salta a la cerca
#/usr/bin/python2.5
#-*- encoding: utf-8 -*-

#Este script reemplaça els punts per punts volats com a separadors de síl·labes.

#Autor: Coet (abans, Pasqual)

#OPCIONS PERSONALITZABLES
primera = "!" #en cas d'aturar el bot poseu aquí el darrer mot analitzat
resum   = u"Bot: canviant separador de síl·labes"
edit    = False #per a que el bot edite canvieu el valor d'esta variable a True
informa = True #per a visualitzar els canvis el valor ha de ser True
 
#A PARTIR D'ACÍ NO MODIFIQUEU RES
import wikipedia, pagegenerators, re
 
site = wikipedia.getSite("ca", "wiktionary")
gen = pagegenerators.AllpagesPageGenerator(site=site, start=primera, namespace=0)
preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = 60)

def sep_ort():
    for pag in preloadingGen:
        try:
            wikipedia.output(u"\3{lightblue}"+pag.title())
            if not pag.exists():
                continue
            txt=pag.get()
            regexp=re.search("\n'''([^']+\.(?:[^']+\.)*?[^'.]+)'''",txt)
            if regexp:
                sepsil = regexp.group(1)
                nova_sepsil = sepsil.replace(".",u"·")
                nou_txt = txt.replace(sepsil, nova_sepsil)
                if informa: wikipedia.showDiff(txt, nou_txt)
                if edit: pag.put(nou_txt, resum)
        except wikipedia.IsRedirectPage:
            continue
        except KeyboardInterrupt:
            break

def sep_fon():
    for pag in preloadingGen:
        try:
            wikipedia.output(pag.title())
            if not pag.exists():
                continue
            txt=nou_txt=pag.get()
            matches=re.findall(ur"\| */([^·]+·(?:[^·]+·)*?[^·]+)/ *\}\}",txt)
            if matches:
                for sepsil in matches:
                    nova_sepsil = sepsil.replace(u"·",".")
                    nou_txt = nou_txt.replace(sepsil, nova_sepsil)
            if nou_txt != txt:
                if informa: wikipedia.showDiff(txt, nou_txt)
                if edit: pag.put(nou_txt, resum)
        except wikipedia.IsRedirectPage:
            continue
        except KeyboardInterrupt:
            break
sep_fon()
wikipedia.stopme()