Utente:Arlas!/Mementovert/Script
Aspetto
# -*- coding: utf-8 -*-
"""
#############################################
# #
# Distributed under the terms of the GFDL #
# Created by [[it:b:User:G4]] #
# Modified by [[Utente:Arlas!]] #
#############################################
Description:
This script is used for updating [[Utente:Arlas!/Mementovert]]
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 = False
global pagine
pagine = True
visuale = False
global categorie
categorie = [ u"Da wikificare", u"Voci Trasferite", u"Voci trasferite dal wikizionario inglese", u"Pagine senza definizione", u"PagineSenzaCategorie", u"Da controllare per copyright", u"Da controllare", u"Da controllare italiano", u"Da aiutare etimologia", u"Da ricontrollare"]
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'0.01'
sito = wikipedia.getSite(code='it',fam='wiktionary')
pagVer = wikipedia.Page(sito, "Utente:Arlas%21/Mementovert/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='wiktionary')
global categorie
pagina = wikipedia.Page(sito, u'Utente:Arlas%21/Mementovert')
nuovo = u"{{Utente:Arlas!/Mementovert/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 + "}}"
pagina.put(nuovo, "[[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='wiktionary')
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()