# -*- coding: utf-8 -*-

import re,urllib,urllib.request,json
import pywikibot
site = pywikibot.Site()
site.login()

# El programa comença aquí
site=pywikibot.Site('ca')
paginforme=pywikibot.Page(site,u"Usuari:Rebot/categories grosses")
informe=[u"",u""]
informeno=[u"",u""]
min="1000"
pagweb0="http://ca.wikipedia.org/w/api.php?action=query&list=allcategories&format=json&acmin=1&acmin=" + min + "&aclimit=500&acprop=size&rawcontinue="
pagweb=pagweb0
textcont=""
while textcont != "acabat":
    print(pagweb)
    pllista = urllib.request.urlopen(pagweb)
    print("obert")
    pbrut = pllista.read()
    jpag = json.loads(pbrut.decode('utf-8'))
    # print jpag
    lcats = jpag["query"]["allcategories"]
    # print lcats
    for dcat in lcats:
        nom = dcat["*"]
        mida = dcat["size"]
        pags = dcat["pages"]
        subcs = dcat["subcats"]
        if subcs == 0 or (subcs == 1 and pags == 0):
            linia = "# [[:categoria:{}]]: {} subcategories i {} pàgines\n".format(nom, subcs, pags)
            titcat = "Categoria:" + nom
            if re.search("Categoria:(Articles|Arxius|Pàgines|Control|Botànics|Infotaula|Mapes|Ús|Redireccions|Fitxers|Usuaris|Anècdotes|Viquipedistes|Infotaules|Plantilles|Demandes|Esborranys|Imatges|Logotips|Manteniment|Moure a|Esportistes amb dades|Peticions|Preguntes|Preses de decisió|VP Grècia|Categories|Esborrar|Drets d'autor a revisar|Manteniment|.*(que necessiten|sense registre fòssil))",
                         titcat):
                informeno[subcs] = informeno[subcs] + linia
            else:
                informe[subcs] = informe[subcs] + linia
            print(linia)

    # Resta del codi
    contbrut = re.findall('"accontinue":".*?"', pbrut.decode('utf-8'))
    if len(contbrut) > 0:
        # print contbrut
        contbrut = contbrut[0]
        contbrut = contbrut.replace('"accontinue":"', '')
        contbrut = contbrut[:-1]
        print("continuació:", contbrut)
        textcont = "&accontinue=" + contbrut
        pagweb = pagweb0 + textcont
    else:
        textcont = "acabat"

print("S'ha acabat")
# Resta del codi
textinforme="\n==Categories grosses==\n\n"
textinforme=textinforme+'Categories amb més de "' + min + '" articles\n'
textinforme=textinforme+"===Categories enciclopèdiques===\n\n"
textinforme=textinforme+"====Sense subcategoria====\n\n"+informe[0]
textinforme=textinforme+"====Amb subcategoria====\n\n"+informe[1]
textinforme=textinforme+"===Categories no enciclopèdiques===\n\n"
textinforme=textinforme+"====Sense subcategoria====\n\n"+informeno[0]
textinforme=textinforme+"====Amb subcategoria====\n\n"+informeno[1]
textinforme=textinforme+"\n--~~~~\n\n\n"
paginforme.put(textinforme,"Robot buscant categories grosses")
pywikibot.stopme()

Adaptat de Usuari:Rebot/Catpet. Pau Cabot · Discussió 06:30, 9 abr 2023 (CEST)