Template:Statistiche manutenzioni/Script

Wikibooks, manuali e libri di testo liberi.

Qusto è lo script utilizzato per aggiornare la tabella del lavoro sporco.

Parametri[modifica]

-pagina:xxx[modifica]

Il parametro pagina indica su quale pagina il bot deve lavorare ed inserire i dati.

Esempio:

moduli.py -pagina:Utente:Gianlu4/Statistiche_manutenzioni

Nel fornire il nome della pagina gli spazi sono inutilizzabili (da sostituire con _ ).

-noVer[modifica]

Il parametro noVer indica al bot di non controllare la versione dello script.

Esempio:

moduli.py -noVer

-noPag[modifica]

Il parametro noPag indica al bot di controllare doltanto la versione di moduli.py.

Esempio:

moduli.py -noPag

-visuale[modifica]

Il parametro visuale indica al bot di restituire i risultati in locale e non aggiornando il template su wikibooks.

Esempio:

moduli.py -visuale

-msg:xxx[modifica]

Il parametro msg indica al bot quale messaggio personalizzato fare apparire dopo il collegamento alla pagina dei Bot.

Esempio:

moduli.py -msg:conto_lavoro_sporco

Lo script sostituisce automaticamente _ con uno spazio.

-aiuto[modifica]

Il parametro aiuto indica al bot di stampare a video una guida rapida all'utilizzo dello script.

Esempio:

moduli.py -aiuto

==moduli.py v. 8.82 ==

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

"""

#############################################
#                                           #
#  Distributed under the terms of the GFDL  #
#        Created by [[it:b:User:G4]]        #
#                                           #
#############################################
 
Description:
   This script is used for updating [[it:b:Template:Statistiche manutenzioni]]
   it counts the number of pages in each category of "Lavoro sporco"
   and puts them in the template

"""
 
import wikipedia, re
from catlib import Category
 
def main():
        aiuto = False
        msg = "conto lavoro sporco"
        global controllo
        controllo = True
        global pagine 
        pagine = True
        visuale = False
        global categorie
        categorie = [ u"Moduli 0%", u"Categoria da definire", u"Da controllare", u"Da controllare per copyright", u"Segnalazioni NPOV", u"Da aiutare", u"Da tradurre", u"Da unire", u"Da wikificare", u"Moduli 25%", u"Moduli 50%", u"Moduli 75%", u"Moduli 100%", u"Libri 0%",  u"Libri 25%",  u"Libri 50%",  u"Libri 75%",  u"Libri 100%"]
        for argomento in wikipedia.handleArgs():
                if argomento.startswith("-pagina:"):
                        pagina = wikipedia.Page(sito, argomento[8:])
                if argomento.startswith("-noVer"):
                        controllo = False
                if argomento.startswith("-noPag"):
                        pagine = False
                if argomento.startswith("-visuale"):
                        visuale = True
                        pagine = False
                if argomento.startswith("-msg:"):
                        msg = re.sub("_", " ", str(argomento[5:]))
                if argomento.startswith("-aiuto"):
                        aiuto = True
        if (aiuto):
                help()
        if (controllo):
                aggiornamenti()
        if (pagine):
                statistiche(msg)
        if (visuale):
                vedi()

def help():
        wikipedia.output("\n HAI CHIESTO AIUTO\n\n")
        wikipedia.output("Questo script (creato da G4) conta le pagine di alcune categorie\n")
        wikipedia.output("di lavoro sporco e, grazie ad un apposito template, aggiorna le\n")
        wikipedia.output("statistiche relative\n\n")
        wikipedia.output("Lo script supporta i parametri:\n\n")
        wikipedia.output(" -aiuto (che stai utilizzando adesso)\n")
        wikipedia.output(" -noPag che comanda al bot di controllare soltanto la versione\n")
        wikipedia.output(" -noVer che comanda al bot di non controllare la versione\n")
        wikipedia.output(" -pagina: che comanda al bot di mettere il template in una pagina diversa\n")
        wikipedia.output(" -visuale che comanda al bot di stampare a video i risultati del conteggio\n")
        wikipedia.output(" -msg: che comanda al bot di dare un messaggio diverso dal solito (che deve")
        wikipedia.output("       essere messo dopo il nome del parametro. Il bot sostituirà")
        wikipedia.output("       automaticamente gli _ con spazi.\n")
        wikipedia.output("Grazie per aver usato l'aiuto di moduli.py\n")
        global pagine
        pagine = False
        global controllo
        controllo = False

def aggiornamenti():
        versione = u'8.82'
        sito = wikipedia.getSite(code='it',fam='wikibooks')
        pagVer = wikipedia.Page(sito, "Template:Statistiche manutenzioni/Script/Versione")
        ver = u'' + pagVer.get()
        if ver <= versione:
                wikipedia.output("\nNon sono state rilasciate nuove versioni di moduli.py (si sta usando la " + ver +")\n")
        else:
                wikipedia.output("\nE' USCITA UNA NUOVA VERSIONE DI MODULI.PY (la " + ver + ")\n")
                global pagine
                pagine = False
 
def statistiche(messaggio):
        sito = wikipedia.getSite(code='it',fam='wikibooks')
        global categorie
        pagina = wikipedia.Page(sito, u'Template:Statistiche manutenzioni')
        nuovo = u"{{Statistiche manutenzioni/Tabella\n"
        nuovo = nuovo + u"|Data={{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} {{subst:LOCALTIME}}\n"
        for k in categorie:
                corrente = Category(sito, 'Categoria:' + k)
                if k == u"Da controllare":
                    catCount = len(corrente.articlesList(recurse=False))
                else:
                    catCount = len(corrente.articlesList(recurse=True))
                k = re.sub("Moduli ", "", k)
                k = re.sub("Libri ", "L", k)
                nuovo = nuovo + "|" + k + "=" + str(catCount) + "\n"
        nuovo = speciali(nuovo, sito, "Orfane", "|Orfane=")
        nuovo = speciali(nuovo, sito, "Categorizzare", "|NoCat=")
        nuovo = speciali(nuovo, sito, "NoInterwiki", "|NoInterwiki=")
        nuovo = nuovo + "}}"
        nuovo = nuovo + u"\n<noinclude>[[Categoria:Coordinamento| ]]</noinclude>"
        pagina.put(nuovo, "[[Wikibooks:Bot|Bot]]: " + messaggio)
 
def speciali(vecchio, sito, cosa, stringa):
        if (cosa == "Orfane"):
                speciale = sito.lonelypages(number = 10000, repeat = False)
        if (cosa == "Categorizzare"):
                speciale = sito.uncategorizedpages(number = 10000, repeat = False)
        if (cosa == "NoInterwiki"):
                speciale = sito.withoutinterwiki(number = 10000, repeat = False)
        k = 0
        for i in speciale:
                k = k + 1
        nuovo = vecchio + stringa + str(k) + u"\n"
        return nuovo
 
def vedi():
        sito = wikipedia.getSite(code='it',fam='wikibooks')
        global categorie
        nuovo = u"\n\n"
        for k in categorie:
                corrente = Category(sito, 'Categoria:' + k)
                catCount = len(corrente.articlesList(recurse=True))
                nuovo = nuovo + k + ": " + str(catCount) + "\n"
        nuovo = speciali2(nuovo, sito, "Orfane", "Orfane: ")
        nuovo = speciali2(nuovo, sito, "Categorizzare", "Da categorizzare: ")
        nuovo = speciali2(nuovo, sito, "NoInterwiki", "Senza Interwiki: ")
        nuovo = nuovo + u"\n"
        wikipedia.output(nuovo)
 
def speciali2(vecchio, sito, cosa, stringa):
        if (cosa == "Orfane"):
                speciale = sito.lonelypages(number = 10000, repeat = False)
        if (cosa == "Categorizzare"):
                speciale = sito.uncategorizedpages(number = 10000, repeat = False)
        if (cosa == "NoInterwiki"):
                speciale = sito.withoutinterwiki(number = 10000, repeat = False)
        k = 0
        for i in speciale:
                k = k + 1
        nuovo = vecchio + stringa + str(k) + u"\n"
        return nuovo
 
if __name__ == "__main__":
        try:
                main()
        finally:
                wikipedia.stopme()

moduli.py versione toolserver[modifica]

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

"""

#############################################
#                                           #
#  Distributed under the terms of the GFDL  #
#        Created by [[it:b:User:G4]]        #
#                                           #
#############################################
 
Description:
   This script is used for updating [[it:b:Template:Statistiche manutenzioni]]
   it counts the number of pages in each category of "Lavoro sporco"
   and puts them in the template

"""
 
import wikipedia, re
from catlib import Category
 
def main():
        msg = "conto lavoro sporco"
        global pagine 
        pagine = True
        global categorie
        categorie = [ u"Moduli 0%", u"Categoria da definire", u"Da controllare", u"Da controllare per copyright", u"Segnalazioni NPOV", u"Da aiutare", u"Da tradurre", u"Da unire", u"Da wikificare", u"Moduli 25%", u"Moduli 50%", u"Moduli 75%", u"Moduli 100%", u"Libri 0%",  u"Libri 25%",  u"Libri 50%",  u"Libri 75%",  u"Libri 100%"]

        aggiornamenti()
        if (pagine):
                statistiche(msg)

def aggiornamenti():
        versione = u'8.82'
        sito = wikipedia.getSite(code='it',fam='wikibooks')
        pagVer = wikipedia.Page(sito, "Template:Statistiche manutenzioni/Script/Versione")
        ver = u'' + pagVer.get()
        if ver > versione:
                global pagine
                pagine = False
 
def statistiche(messaggio):
        sito = wikipedia.getSite(code='it',fam='wikibooks')
        global categorie
        pagina = wikipedia.Page(sito, u'Template:Statistiche manutenzioni')
        nuovo = u"{{Statistiche manutenzioni/Tabella\n"
        nuovo = nuovo + u"|Data={{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} {{subst:LOCALTIME}}\n"
        for k in categorie:
                corrente = Category(sito, 'Categoria:' + k)
                if k == u"Da controllare":
                    catCount = len(corrente.articlesList(recurse=False))
                else:
                    catCount = len(corrente.articlesList(recurse=True))
                k = re.sub("Moduli ", "", k)
                k = re.sub("Libri ", "L", k)
                nuovo = nuovo + "|" + k + "=" + str(catCount) + "\n"
        nuovo = speciali(nuovo, sito, "Orfane", "|Orfane=")
        nuovo = speciali(nuovo, sito, "Categorizzare", "|NoCat=")
        nuovo = speciali(nuovo, sito, "NoInterwiki", "|NoInterwiki=")
        nuovo = nuovo + "}}"
        nuovo = nuovo + u"\n<noinclude>[[Categoria:Coordinamento| ]]</noinclude>"
        pagina.put(nuovo, "[[Wikibooks:Bot|Bot]]: " + messaggio)
 
def speciali(vecchio, sito, cosa, stringa):
        if (cosa == "Orfane"):
                speciale = sito.lonelypages(number = 10000, repeat = False)
        if (cosa == "Categorizzare"):
                speciale = sito.uncategorizedpages(number = 10000, repeat = False)
        if (cosa == "NoInterwiki"):
                speciale = sito.withoutinterwiki(number = 10000, repeat = False)
        k = 0
        for i in speciale:
                k = k + 1
        nuovo = vecchio + stringa + str(k) + u"\n"
        return nuovo

 
if __name__ == "__main__":
        try:
                main()
        finally:
                wikipedia.stopme()