Template:Statistiche manutenzioni/Script

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

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 ==

  1 # -*- coding: utf-8 -*-
  2 
  3 """
  4 
  5 #############################################
  6 #                                           #
  7 #  Distributed under the terms of the GFDL  #
  8 #        Created by [[it:b:User:G4]]        #
  9 #                                           #
 10 #############################################
 11  
 12 Description:
 13    This script is used for updating [[it:b:Template:Statistiche manutenzioni]]
 14    it counts the number of pages in each category of "Lavoro sporco"
 15    and puts them in the template
 16 
 17 """
 18  
 19 import wikipedia, re
 20 from catlib import Category
 21  
 22 def main():
 23         aiuto = False
 24         msg = "conto lavoro sporco"
 25         global controllo
 26         controllo = True
 27         global pagine 
 28         pagine = True
 29         visuale = False
 30         global categorie
 31         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%"]
 32         for argomento in wikipedia.handleArgs():
 33                 if argomento.startswith("-pagina:"):
 34                         pagina = wikipedia.Page(sito, argomento[8:])
 35                 if argomento.startswith("-noVer"):
 36                         controllo = False
 37                 if argomento.startswith("-noPag"):
 38                         pagine = False
 39                 if argomento.startswith("-visuale"):
 40                         visuale = True
 41                         pagine = False
 42                 if argomento.startswith("-msg:"):
 43                         msg = re.sub("_", " ", str(argomento[5:]))
 44                 if argomento.startswith("-aiuto"):
 45                         aiuto = True
 46         if (aiuto):
 47                 help()
 48         if (controllo):
 49                 aggiornamenti()
 50         if (pagine):
 51                 statistiche(msg)
 52         if (visuale):
 53                 vedi()
 54 
 55 def help():
 56         wikipedia.output("\n HAI CHIESTO AIUTO\n\n")
 57         wikipedia.output("Questo script (creato da G4) conta le pagine di alcune categorie\n")
 58         wikipedia.output("di lavoro sporco e, grazie ad un apposito template, aggiorna le\n")
 59         wikipedia.output("statistiche relative\n\n")
 60         wikipedia.output("Lo script supporta i parametri:\n\n")
 61         wikipedia.output(" -aiuto (che stai utilizzando adesso)\n")
 62         wikipedia.output(" -noPag che comanda al bot di controllare soltanto la versione\n")
 63         wikipedia.output(" -noVer che comanda al bot di non controllare la versione\n")
 64         wikipedia.output(" -pagina: che comanda al bot di mettere il template in una pagina diversa\n")
 65         wikipedia.output(" -visuale che comanda al bot di stampare a video i risultati del conteggio\n")
 66         wikipedia.output(" -msg: che comanda al bot di dare un messaggio diverso dal solito (che deve")
 67         wikipedia.output("       essere messo dopo il nome del parametro. Il bot sostituirà")
 68         wikipedia.output("       automaticamente gli _ con spazi.\n")
 69         wikipedia.output("Grazie per aver usato l'aiuto di moduli.py\n")
 70         global pagine
 71         pagine = False
 72         global controllo
 73         controllo = False
 74 
 75 def aggiornamenti():
 76         versione = u'8.82'
 77         sito = wikipedia.getSite(code='it',fam='wikibooks')
 78         pagVer = wikipedia.Page(sito, "Template:Statistiche manutenzioni/Script/Versione")
 79         ver = u'' + pagVer.get()
 80         if ver <= versione:
 81                 wikipedia.output("\nNon sono state rilasciate nuove versioni di moduli.py (si sta usando la " + ver +")\n")
 82         else:
 83                 wikipedia.output("\nE' USCITA UNA NUOVA VERSIONE DI MODULI.PY (la " + ver + ")\n")
 84                 global pagine
 85                 pagine = False
 86  
 87 def statistiche(messaggio):
 88         sito = wikipedia.getSite(code='it',fam='wikibooks')
 89         global categorie
 90         pagina = wikipedia.Page(sito, u'Template:Statistiche manutenzioni')
 91         nuovo = u"{{Statistiche manutenzioni/Tabella\n"
 92         nuovo = nuovo + u"|Data={{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} {{subst:LOCALTIME}}\n"
 93         for k in categorie:
 94                 corrente = Category(sito, 'Categoria:' + k)
 95                 if k == u"Da controllare":
 96                     catCount = len(corrente.articlesList(recurse=False))
 97                 else:
 98                     catCount = len(corrente.articlesList(recurse=True))
 99                 k = re.sub("Moduli ", "", k)
100                 k = re.sub("Libri ", "L", k)
101                 nuovo = nuovo + "|" + k + "=" + str(catCount) + "\n"
102         nuovo = speciali(nuovo, sito, "Orfane", "|Orfane=")
103         nuovo = speciali(nuovo, sito, "Categorizzare", "|NoCat=")
104         nuovo = speciali(nuovo, sito, "NoInterwiki", "|NoInterwiki=")
105         nuovo = nuovo + "}}"
106         nuovo = nuovo + u"\n<noinclude>[[Categoria:Coordinamento| ]]</noinclude>"
107         pagina.put(nuovo, "[[Wikibooks:Bot|Bot]]: " + messaggio)
108  
109 def speciali(vecchio, sito, cosa, stringa):
110         if (cosa == "Orfane"):
111                 speciale = sito.lonelypages(number = 10000, repeat = False)
112         if (cosa == "Categorizzare"):
113                 speciale = sito.uncategorizedpages(number = 10000, repeat = False)
114         if (cosa == "NoInterwiki"):
115                 speciale = sito.withoutinterwiki(number = 10000, repeat = False)
116         k = 0
117         for i in speciale:
118                 k = k + 1
119         nuovo = vecchio + stringa + str(k) + u"\n"
120         return nuovo
121  
122 def vedi():
123         sito = wikipedia.getSite(code='it',fam='wikibooks')
124         global categorie
125         nuovo = u"\n\n"
126         for k in categorie:
127                 corrente = Category(sito, 'Categoria:' + k)
128                 catCount = len(corrente.articlesList(recurse=True))
129                 nuovo = nuovo + k + ": " + str(catCount) + "\n"
130         nuovo = speciali2(nuovo, sito, "Orfane", "Orfane: ")
131         nuovo = speciali2(nuovo, sito, "Categorizzare", "Da categorizzare: ")
132         nuovo = speciali2(nuovo, sito, "NoInterwiki", "Senza Interwiki: ")
133         nuovo = nuovo + u"\n"
134         wikipedia.output(nuovo)
135  
136 def speciali2(vecchio, sito, cosa, stringa):
137         if (cosa == "Orfane"):
138                 speciale = sito.lonelypages(number = 10000, repeat = False)
139         if (cosa == "Categorizzare"):
140                 speciale = sito.uncategorizedpages(number = 10000, repeat = False)
141         if (cosa == "NoInterwiki"):
142                 speciale = sito.withoutinterwiki(number = 10000, repeat = False)
143         k = 0
144         for i in speciale:
145                 k = k + 1
146         nuovo = vecchio + stringa + str(k) + u"\n"
147         return nuovo
148  
149 if __name__ == "__main__":
150         try:
151                 main()
152         finally:
153                 wikipedia.stopme()

moduli.py versione toolserver[modifica]

 1 # -*- coding: utf-8 -*-
 2 
 3 """
 4 
 5 #############################################
 6 #                                           #
 7 #  Distributed under the terms of the GFDL  #
 8 #        Created by [[it:b:User:G4]]        #
 9 #                                           #
10 #############################################
11  
12 Description:
13    This script is used for updating [[it:b:Template:Statistiche manutenzioni]]
14    it counts the number of pages in each category of "Lavoro sporco"
15    and puts them in the template
16 
17 """
18  
19 import wikipedia, re
20 from catlib import Category
21  
22 def main():
23         msg = "conto lavoro sporco"
24         global pagine 
25         pagine = True
26         global categorie
27         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%"]
28 
29         aggiornamenti()
30         if (pagine):
31                 statistiche(msg)
32 
33 def aggiornamenti():
34         versione = u'8.82'
35         sito = wikipedia.getSite(code='it',fam='wikibooks')
36         pagVer = wikipedia.Page(sito, "Template:Statistiche manutenzioni/Script/Versione")
37         ver = u'' + pagVer.get()
38         if ver > versione:
39                 global pagine
40                 pagine = False
41  
42 def statistiche(messaggio):
43         sito = wikipedia.getSite(code='it',fam='wikibooks')
44         global categorie
45         pagina = wikipedia.Page(sito, u'Template:Statistiche manutenzioni')
46         nuovo = u"{{Statistiche manutenzioni/Tabella\n"
47         nuovo = nuovo + u"|Data={{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} {{subst:LOCALTIME}}\n"
48         for k in categorie:
49                 corrente = Category(sito, 'Categoria:' + k)
50                 if k == u"Da controllare":
51                     catCount = len(corrente.articlesList(recurse=False))
52                 else:
53                     catCount = len(corrente.articlesList(recurse=True))
54                 k = re.sub("Moduli ", "", k)
55                 k = re.sub("Libri ", "L", k)
56                 nuovo = nuovo + "|" + k + "=" + str(catCount) + "\n"
57         nuovo = speciali(nuovo, sito, "Orfane", "|Orfane=")
58         nuovo = speciali(nuovo, sito, "Categorizzare", "|NoCat=")
59         nuovo = speciali(nuovo, sito, "NoInterwiki", "|NoInterwiki=")
60         nuovo = nuovo + "}}"
61         nuovo = nuovo + u"\n<noinclude>[[Categoria:Coordinamento| ]]</noinclude>"
62         pagina.put(nuovo, "[[Wikibooks:Bot|Bot]]: " + messaggio)
63  
64 def speciali(vecchio, sito, cosa, stringa):
65         if (cosa == "Orfane"):
66                 speciale = sito.lonelypages(number = 10000, repeat = False)
67         if (cosa == "Categorizzare"):
68                 speciale = sito.uncategorizedpages(number = 10000, repeat = False)
69         if (cosa == "NoInterwiki"):
70                 speciale = sito.withoutinterwiki(number = 10000, repeat = False)
71         k = 0
72         for i in speciale:
73                 k = k + 1
74         nuovo = vecchio + stringa + str(k) + u"\n"
75         return nuovo
76 
77  
78 if __name__ == "__main__":
79         try:
80                 main()
81         finally:
82                 wikipedia.stopme()