Usuari:Ssola/disambig.py
Programa de Pywikibot (en Python 3) per a generar la llista de Viquipèdia:Enllaços incorrectes a pàgines de desambiguació. Guarda el resultat en un fitxer local llista_desambiguacions.txt. S'executa en pocs minuts.
import pywikibot
from pywikibot import pagegenerators as pg
import datetime
from multiprocessing.pool import ThreadPool
from multiprocessing import Lock
site = pywikibot.Site('ca', 'wikipedia')
site.login()
disambig_cat = pywikibot.Category(site, u'Categoria:Pàgines de desambiguació')
disambig_pages = pg.CategorizedPageGenerator(disambig_cat, recurse=True)
disambig_list = []
total_links = 0
counted_links = 0
lock = Lock()
def list_links(pag):
num_links = len(list(site.pagebacklinks(pag, namespaces=0)))
if num_links > 4:
disambig_list.append((pag.title(), num_links))
global total_links, counted_links
with lock:
total_links += num_links
if total_links - counted_links >= 1000:
counted_links += 1000
print(total_links)
pool = ThreadPool(20)
pool.map(list_links, disambig_pages)
disambig_list.sort(key=lambda x: x[1], reverse=True)
with open('llista_desambiguacions.txt', 'w') as f:
print('Actualització de {{data|', datetime.date.today(), '}}:', total_links,
'→Vegeu una [[#Eina per desambiguar]] ', file=f)
for title, n_links in disambig_list:
print('# [[' + title + ']]:', n_links,
'[[Special:Whatlinkshere/' + title + '|enllaços]]', file=f)