Usuari:Rebot/Catpet

De la Viquipèdia, l'enciclopèdia lliure
# -*- 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 petites")
informe=[u"",u""]
informeno=[u"",u""]
pagweb0="http://ca.wikipedia.org/w/api.php?action=query&list=allcategories&format=json&acmin=1&acmax=4&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|Errors|Morts|Naixements|Viquiprojectes|Mòduls|Pàgines|Usuaris|Anècdotes|Viquipedistes|Infotaules|Plantilles|Demandes|Esborranys|Imatges|Logotips|Manteniment|Moure a|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)
    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")
textinforme="\n==Categories petites==\n\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 petites")
pywikibot.stopme()

Adaptat de Usuari:PereBot/robot categories petites. Traduït de python2 a python3. Pau Cabot · Discussió 11:00, 8 abr 2023 (CEST)