Usuari:Rebot/Desamb
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[0], reverse=False) # afegit 21-12-2023 disambig_list.sort(key=lambda x: x[1], reverse=True) # Obtenir la pàgina wiki page = pywikibot.Page(site, 'Viquipèdia:Enllaços incorrectes a pàgines de desambiguació') # Actualitzar la pàgina amb la llista de pàgines de desambiguació page.text = 'Actualització de {{data|' + str(datetime.date.today()) + '}}: ' + str(total_links) + ' → Vegeu una [[#Eina per desambiguar]].\n\n' for title, n_links in disambig_list: page.text += '# [[' + title + ']]: ' + str(n_links) + ' [[Special:Whatlinkshere/' + title + '|enllaços]]\n' # Guardar els canvis a la pàgina wiki page.save(summary='Actualització automàtica de la llista de pàgines de desambiguació')
Adaptat de Usuari:Ssola/disambig.py. Pau Cabot · Discussió 17:35, 8 abr 2023 (CEST)