Utente:YuBot/Statistichemanutenzioni.py

#!/usr/bin/python
# -*- coding: utf-8  -*-

import wikipedia
import pagegenerators
import catlib

##################################################################
## Statistichemanutenzioni.py versione 0.5.1 
## Elaborato da Yuma.
## Aggiorna le tabelle per le statistiche dei singoli progetti.
## Attenzione: assicurarsi che la tabella esista, il bot non è
## sempre in grado di capirlo da solo... :)
##
## Istruzioni:
## Inserire quando richiesto il nome del progetto in minuscolo
## (es: per il Progetto:Teatro inserire "teatro")
##
##################################################################

def main(nomeprogetto):
    lettera=u'!'
    
    tabella=wikipedia.Page('it', 'Progetto:'+nomeprogetto+ '/Statistiche manutenzioni')
    print tabella

    if tabella.exists():
        progetto=nomeprogetto
    else:
        progetto=''
        wikipedia.stopme()
       
    prog=wikipedia.Page('it', 'Progetto:'+progetto)
    titoloprog=prog.title()
    commento=u'Bot: aggiorno statistiche del '+titoloprog
    commento2=u'aggiorno log'
    
    if prog.exists():

        #stub

        numerostub=''
        categoryname = (u'Stub '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numerostub=str(count)
        lenstub=len(numerostub)

        stub=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Stub')
        stub.put(numerostub, comment=commento)

        #wikif

        categoryname = (u'Da wikificare '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        wikif=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Wikificare')
        wikif.put(numero, comment=commento)

        #contr

        
        categoryname = (u'Da controllare '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        contr=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Controllare')
        contr.put(numero, comment=commento)

        #trad

        
        categoryname = (u'Da tradurre - '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                    
        numero=aggiusta(count, lenstub)
          
        trad=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Tradurre')
        trad.put(numero, comment=commento)

        #npov

        
        categoryname = (u'Segnalazioni NPOV '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        npov=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/NPOV')
        npov.put(numero, comment=commento)

        #ctrlcopy

        
        categoryname = (u'Da controllare per copyright - '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        ctrlcopy=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Controlcopy')
        ctrlcopy.put(numero, comment=commento)

        #orfane

        
        categoryname = (u'Pagine orfane - '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        orfane=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Orfane')
        orfane.put(numero, comment=commento)
        
        #aiut

        
        categoryname = (u'Da aiutare '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        aiut=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Aiutare')
        aiut.put(numero, comment=commento)

        #fonti

        
        categoryname = (u'Voci mancanti di fonti - '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        fonti=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Senza fonti')
        fonti.put(numero, comment=commento)
        
        #ency

        
        categoryname = (u'Da verificare per enciclopedicità - '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        ency=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Ency')
        ency.put(numero, comment=commento)

        #unire

        
        categoryname = (u'Da unire - '+progetto)
        cat = catlib.Category(wikipedia.getSite(), 'Categoria:%s' % categoryname)
        gen = pagegenerators.CategorizedPageGenerator(cat,  recurse = True, start=lettera)
        count=len(gen)
                     
        numero=aggiusta(count, lenstub)
          
        aiut=wikipedia.Page('it', titoloprog+'/Statistiche manutenzioni/Unire')
        aiut.put(numero, comment=commento)

def aggiusta(count, lenstub):
    numero=str(count)
    lenght=len(numero)
        
    if lenght < lenstub:
            numero='0'+numero
            lenght=len(numero)

    if lenght < lenstub:
            numero='0'+numero
            lenght=len(numero)

    if lenght < lenstub:
            numero='0'+numero
            lenght=len(numero)

    if lenght < lenstub:
            numero='0'+numero
            lenght=len(numero)
            
    return numero
        

try:
    nomeprogetto=wikipedia.input('nome del progetto: ')
    main(nomeprogetto)
finally:
    wikipedia.stopme()