Vés al contingut

Usuari:PereBot/robot enllaços a desambiguacions

De la Viquipèdia, l'enciclopèdia lliure
# -*- coding: utf-8 -*-
# Robot que llista articles enllaçats a pàgines de desambiguació.
# Exclou les redireccions i els que tenen una plantilla de polisèmia.
# Les pàgines que tenen "desambiguació" al títol no les mira
# per massa òbvies.

import sys
sys.path.append('C:\pywikipedia')
import wikipedia,catlib,re,pagegenerators,urllib2

def main():
    tcat=u"Pàgines de desambiguació" #Poseu aquí la categoria a indexar
    cat=catlib.Category(site,tcat)
    informe=u"=="+tcat+u"==\n\n"
    informe0=informe
    paginforme=wikipedia.Page(site,u"Usuari:PereBot/enllaços a pàgines de desambiguació") # Canvieu això pel lloc on vulgueu la informació
    textvell=paginforme.get()
    comptador=0
    comptabloc=480
    for pag in pagegenerators.CategorizedPageGenerator(cat,recurse=True):
        print comptador, pag 
        enllacades=u""
        if u"(desambiguació)" in pag.title():
            print u"Títol inconfusible"
            continue
        for art in pagegenerators.PreloadingGenerator(pagegenerators.ReferringPageGenerator(pag,followRedirects=True)):
            print comptador, comptabloc, art 
            plants=art.templates()
            if art.namespace()<>0:
                print u"No espai principal"
                continue
            elif art.isRedirectPage():
                continue
            elif u'Confusió' in plants or u'Confondre' in plants or u'Distingir' in plants:
                print u'Confusió'
                continue
            elif u'Polisèmia' in plants or u'Nota disambigua' in plants or u'Other uses' in plants or u'Altres usos' in plants:
                print u'Polisèmia'
                continue
            elif u'Redirecció' in plants or u'Redirect' in plants:
                print u'Redirecció'
                continue
            elif u'Vegeu' in plants or u'Polisèmia descripció' in plants or u'Homonímia' in plants:
                print u'Vegeu'
                continue
            elif u'Vegeu (des)' in plants or u'Vegeu (desambiguació)' in plants:
                print u'Vegeu (des)'
                continue
            elif u'Vegeu lliure' in plants or u'Hatnote' in plants:
                print u'Vegeu (des)'
                continue
            elif u'Vegeu3' in plants or u'Otheruses4' in plants:
                print u'Vegeu3'
                continue
            comptador=comptador+1
            comptabloc=comptabloc+1
            enllacades=enllacades+u"## [["+art.title()+u"]]\n"
            print u"enllaçada"
        if enllacades<>u"":
            informe=informe+u"# [["+pag.title()+u"]]\n"+enllacades
        if comptabloc>500:
            textnou=textvell+u"\n\n"+informe+u"\n\n"
            paginforme.put(textnou,u"Enllaços a pàgines de desambiguació")
            comptabloc=0
#        if comptador>50:
#            break
    textnou=textvell+u"\n\n"+informe+u"\n\n--~~~~\n"
    paginforme.put(textnou,u"Enllaços a pàgines de desambiguació")
    return

#El programa comença aquí
try:
    site=wikipedia.getSite('ca')
    main()
finally:
    wikipedia.stopme()