Template:Statistiche manutenzioni/Script

Wikibooks, manuali e libri di testo liberi.

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

Indice

[modifica] Parametri

[modifica] -pagina:xxx

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 _ ).

[modifica] -noVer

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

Esempio:

moduli.py -noVer

[modifica] -noPag

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

Esempio:

moduli.py -noPag

[modifica] -visuale

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

Esempio:

moduli.py -visuale

[modifica] -msg:xxx

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.

[modifica] -aiuto

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

Esempio:

moduli.py -aiuto

[modifica] 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()
    

[modifica] moduli.py versione toolserver

  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()
    
Strumenti personali