Template:Statistiche manutenzioni/Script
Qusto è lo script utilizzato per aggiornare la tabella del lavoro sporco.
Parametri
[modifica sorgente]-pagina:xxx
[modifica sorgente]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 sorgente]Il parametro noVer indica al bot di non controllare la versione dello script.
Esempio: moduli.py -noVer
-noPag
[modifica sorgente]Il parametro noPag indica al bot di controllare doltanto la versione di moduli.py.
Esempio: moduli.py -noPag
-visuale
[modifica sorgente]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 sorgente]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 sorgente]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 sorgente]# -*- 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()