Aiuto:Bollettino/Archivio
Questa pagina è inutilizzata o comunque obsoleta ed è mantenuta per scopi storici e di archivio. Le informazioni qui descritte sono superate e non devono essere considerate valide. Per favore, non modificare il testo sottostante senza avere prima avuto il necessario consenso. |
Ogni libro ha vari moduli che possono appartenere a varie categorie del lavoro sporco e varie fasi di avanzamento.
Per fornire statistiche agli utenti sull'appartenenza ad una o più delle suddette categorie dei moduli di un libro, la comunità ha deciso al Bar di rendere disponibili dei bollettini per ciascun libro.
ATTENZIONE: l'aggiornamento dei bollettini tramite bot è inattivo dal 2009. Per conoscere la policy attualmente in vigore si veda Aiuto:Bollettino.
Cosa fanno i bollettini?
modificaI bollettini rendono possibile l'orientamento dell'utente verso il miglioramento di un libro. Ad esempio un libro che spesso è sotto violazione di copyright può essere scoperto più velocemente vedendo il bollettino piuttosto che andare a vedere ciascun modulo.
Dove si trovano i bollettini?
modificaI bollettini si possono trovare nella pagina Progetto:Coordinamento/Bollettini/Nome libro. Ad esempio il bollettino del libro Magic è Progetto:Coordinamento/Bollettini/Magic. Vi si può arrivare dal template di navigazione o dalla copertina del libro.
Quanti sono i bollettini?
modificaAttualmente i bollettini sono 243. Puoi saperlo usando il template {{NUMBEROFBOLLETTINI}}.
Come posso usare un bollettino?
modificaI bollettini sono divisi per colore:
- La parte rossa è ininfluente: indica la fonte del bollettino, l'autore e la data di rilascio.
- La parte verde è la parte dell'avanzamento: vi sono descritte le fasi di avanzamento dei moduli.
- Le parti gialle e blu rappresentano il lavoro sporco:
- La parte gialla è la parte del lavoro sporco che è possibile fare anche in molto tempo.
- La parte blu è della parte del lavoro sporco più urgente e pericolosa.
Per ciascuna parte possiamo vedere più dati (o righe). Questi dati possono essere così interpretati:
- A sinistra il nome del dato (la categoria in questione) o un'immagine raffigurante la fase di avanzamento (nella parte verde).
- Al centro-sinistra il dato: un numero che corrisponde ad un link verso la parte bassa del template dove vengono elencate le pagine contate.
- Al centro una percentuale: è quella del dato in questione rispetto ai moduli del libro.
- Al centro-destra un'icona: raffigura la variazione del dato rispetto al bollettino precedente.
- A destra la variazione del dato rispetto al bollettino precedente.
Sotto al template vero e proprio del bollettino, vi sono i collegamenti a ciascuna delle pagine contate per ciascuna delle categorie.
Icone di variazione
modificaDalla versione 1.15, i bollettini possono avere un dato che rappresenta la variazione dal bollettino precedente. Ecco le icone utilizzate:
Icona | Scritta accanto | Significato |
---|---|---|
+ 0 | Nessuna variazione | |
+ y | In aumento di y | |
- x | In diminuzione di x |
Nel caso non ci siano variazioni, il bollettino sia nuovo o la versione del bollettino sia inferiore alla 1.15, non verranno mostrate le variazioni.
Come posso richiedere la creazione del bollettino del mio nuovo libro?
modificaPer richiedere un bollettino, basta segnalare il libro al Progetto apposito. Di norma viene creato un bollettino per ciascuno dei libri nuovi citati al Wikibookiano.
Sono di altre wiki o di una straniera e vorrei lo script...
modificaEccoti accontentato:
bollettino.py v. 1.16.1
modifica# -*- coding: utf-8 -*-
"""
#############################################
# #
# Distributed under the terms of the GFDL #
# Created by [[it:b:User:G4]] #
# #
#############################################
"""
import wikipedia, pagegenerators, re
from catlib import Category
from datetime import datetime
def inizio():
#Esamina le opzioni e valuta che fare
nodisco = True
nowiki = True
pag = ""
global versione
versione = u"1.16.1"
global tem
tem = True
for argomento in wikipedia.handleArgs():
if argomento.startswith("-file:"):
nodisco = False
file = re.sub("_", " ", str(argomento[6:]))
if argomento.startswith("-wiki:"):
nowiki = False
pag = re.sub("_", " ", str(argomento[6:]))
if argomento == "-file":
nodisco = False
file = input("Inserisci il percorso del file: ")
file = re.sub("_", " ", file)
if argomento == "-wiki":
nowiki = False
pag = input("Inserisci il nome della pagina: ")
pag = re.sub("_", " ", pag)
if (nodisco) and (nowiki):
libro = raw_input('Inserisci il nome del libro: ')
if libro == "NoNo":
tem = False
elif libro !="No":
libro = re.sub("_", " ", libro)
variabili()
speciali()
scrivi(unicode(libro, 'utf-8'))
elif (nodisco) and not (nowiki):
variabili()
speciali()
sito = wikipedia.getSite(code='it',fam='wikibooks')
Pagina = wikipedia.Page(sito, pag)
testo = Pagina.get()
cerca = re.compile("# \[?\[?.*]?]?")
cerca = cerca.search(testo)
if cerca != None:
cerca2 = re.compile("# \[?\[?.*]?]?")
cerca2 = cerca2.findall(testo)
for g in cerca2:
g = re.sub("# |\[\[|]]", "", g)
g = re.sub("_", " ", g)
scrivi(str(g))
elif (nowiki) and not (nodisco):
variabili()
speciali()
f = open(file, 'r')
for linea in f.readlines():
libro = re.sub("\n", "", linea)
libro = re.sub("_", " ", libro)
scrivi(unicode(libro, 'utf-8'))
f.close()
if (tem):
bollettini()
senza()
def scrivi(libro):
# Crea e scrive il bollettino
sito = wikipedia.getSite(code='it',fam='wikibooks')
procedo = True
pagLibro = wikipedia.Page(sito, libro)
try:
pagLibro.get()
except wikipedia.IsRedirectPage:
procedo = False
wikipedia.output("\n" + pagLibro.title() + "e' un redirect.\n")
except wikipedia.NoPage:
procedo = False
Bollettino = wikipedia.Page(sito, libro + "/Sviluppo")
log = wikipedia.Page(sito, "Progetto:Coordinamento/Bollettini/Log")
testo = "{{Bollettino\n"
testo = testo + "|Autore=~~~\n"
testo = testo + "|Data={{subst:LOCALTIME}} - {{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}\n"
testo = testo + "|Libro=" + libro + "\n"
testo2 = ""
categorie = [ "Moduli stub", "Moduli 25%", "Moduli 50%", "Moduli 75%", "Moduli 100%", "Da wikificare", "Da controllare", "Da aiutare", "Da controllare per copyright", "Da tradurre", "Segnalazioni NPOV", "Da cancellare"]
categorie2 = [ "00%", "25%", "50%", "75%", "100%", "Wik", "Control", "Aiutare", "Controlcopy", "Tradurre", "NPOV", "Canc" ]
categorie3 = categorie2 + [ "Orfane", "NoCat", "Red" ]
if (procedo):
Blocco = set(pagegenerators.PrefixingPageGenerator(libro + "/"))
Blocco.add(wikipedia.Page(sito, libro))
for numero in range(0, len(categorie)):
cat = Category(sito, "Categoria:" + categorie[numero])
Blocco2 = set(pagegenerators.CategorizedPageGenerator(cat))
testo2 = testo2 + "\n\n==[[:Categoria:" + str(categorie[numero]) + "|" + str(categorie[numero]) + "]]==\n"
conta = 0
for page in Blocco.intersection(Blocco2):
conta = conta + 1
if page.title() == Bollettino.title():
continue
else:
testo2 = testo2 + "# [[" + page.title() + "]]\n"
if str(categorie[numero]) == "Moduli 100%":
if Bollettino.exists():
testo = testo + "|" + categorie2[numero] + "=" + str(conta - 1) + "\n"
else:
testo = testo + "|" + categorie2[numero] + "=" + str(conta) + "\n"
else:
testo = testo + "|" + categorie2[numero] + "=" + str(conta) + "\n"
utile = wikipedia.Page(sito, "Progetto:Coordinamento/Bollettini/PagineOrfane")
Blocco2 = set(pagegenerators.LinkedPageGenerator(utile))
conta = 0
testo2 = testo2 + "\n\n==[[Progetto:Coordinamento/Bollettini/PagineOrfane|Orfane]]==\n"
for page in Blocco.intersection(Blocco2):
conta = conta + 1
if page.title == Bollettino.title:
continue
else:
testo2 = testo2 + "# [[" + page.title() + "]]\n"
testo = testo + "|Orfane=" + str(conta) + "\n"
wikipedia.output("Aggiunte le orfane")
utile = wikipedia.Page(sito, "Progetto:Coordinamento/Bollettini/NonCategorizzate")
Blocco2 = set(pagegenerators.LinkedPageGenerator(utile))
conta = 0
testo2 = testo2 + "\n\n==[[Progetto:Coordinamento/Bollettini/NonCategorizzate|Non categorizzate]]==\n"
for page in Blocco.intersection(Blocco2):
conta = conta + 1
if page.title == Bollettino.title:
continue
else:
testo2 = testo2 + "# [[" + page.title() + "]]\n"
testo = testo + "|NoCat=" + str(conta) + "\n"
wikipedia.output("Aggiunte le non categorizzate")
conta = 0
testo2 = testo2 + "\n\n==Redirect==\n"
for pa in Blocco:
if pa.isRedirectPage():
titolo = re.sub(" ", "%20", pa.title())
conta = conta + 1
testo2 = testo2 + "# [http://it.wikibooks.org/w/index.php?title=" + titolo + "&redirect=no " + pa.title() + "]\n"
testo = testo + "|Red=" + str(conta) + "\n"
wikipedia.output("Aggiunti i redirect")
if Bollettino.exists():
for numero2 in range(0, len(categorie3)):
stringa = "\|" + categorie3[numero2] + "=.+"
tes = re.search(stringa, Bollettino.get())
tes2 = re.sub("\|" + categorie3[numero2] + "=", "", tes.group())
nuprec = int(str(tes2))
tes = re.search(stringa, testo)
tes2 = re.sub("\|" + categorie3[numero2] + "=", "", tes.group())
numor = int(str(tes2))
if nuprec > numor:
diff = nuprec - numor
testo = testo + "|%" + categorie3[numero2] + "=-\n|d" + categorie3[numero2] + "=" + str(diff) + "\n"
elif nuprec < numor:
diff = numor - nuprec
testo = testo + "|%" + categorie3[numero2] + "=+\n|d" + categorie3[numero2] + "=" + str(diff) + "\n"
else:
testo = testo + "|%" + categorie3[numero2] + "=0\n|d" + categorie3[numero2] + "=0\n"
else:
for numero2 in range(0, len(categorie3)):
testo = testo + "|%" + categorie3[numero2] + "=0\n|d" + categorie3[numero2] + "=0\n"
if Bollettino.exists():
conta = -2
else:
conta = -1
for a in range(0, len(Blocco)):
conta = conta + 1
if conta == -1 or conta == -2:
conta = 0
testo = testo + "|Moduli=" + str(conta) + "\n"
categorie = [ "Libri stub", "Libri 25%", "Libri 50%", "Libri 75%", "Libri 100%"]
for g in categorie:
cat = Category(sito, "Categoria:" + g)
Blocco2 = set(pagegenerators.CategorizedPageGenerator(cat))
h = re.sub("Libri |%", "", g)
if h == "stub":
h = "00"
if pagLibro in Blocco2:
testo = testo + "|CaLib=" + h + "\n"
cat = Category(sito, "Categoria:Libri in vetrina")
Blocco2 = set(pagegenerators.CategorizedPageGenerator(cat))
if pagLibro in Blocco2:
testo = testo + "|Vet=Si\n"
global versione
testo = testo + "|Versione=" + versione + "\n}}\n\n"
testo3 = "\n{{Avanzamento|100%}}"
testo = testo + testo2 + testo3
if Bollettino.exists():
Bollettino.put(testo, "[[Wikibooks:Bot|Bot]]: aggiorno bollettino")
else:
Bollettino.put(testo, "[[Wikibooks:Bot|Bot]]: creo bollettino")
testo = log.get()
testo = testo + "\n#[[" + libro + "]] ([[" + libro + "/Sviluppo|bollettino]]) - {{subst:LOCALTIME}} - {{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} - ~~~"
log.put(testo, "[[Wikibooks:Bot|Bot]]: aggiorno il log")
def bollettini():
# Aggiorna il numero dei bollettini se è vecchio
if vecchio("Template:NUMBEROFBOLLETTINI"):
sito = wikipedia.getSite(code='it',fam='wikibooks')
template = wikipedia.Page(sito, "Template:NUMBEROFBOLLETTINI")
global tutte
pagine = tutte
conta = 0
for y in pagine:
if y.title().endswith("/Sviluppo"):
conta += 1
template.put(str(conta), "[[Wikibooks:Bot|Bot]]: aggiorno numero di [[Aiuto:Bollettino|bollettini]]")
def senza():
# Aggiorna la lista di libri senza bollettino se cono vecchie
if vecchio("Progetto:Coordinamento/Bollettini/Senza"):
sito = wikipedia.getSite(code='it',fam='wikibooks')
global tutte
libr = tutte
pagSen = wikipedia.Page(sito, "Progetto:Coordinamento/Bollettini/Senza")
global libri
sen = set()
for u in libri:
pa = wikipedia.Page(sito, u.title() + "/Sviluppo")
if not pa in tutte:
if u.isRedirectPage() == False:
sen.add(u)
testo = ""
for i in sen:
testo = testo + "# [[" + i.title() + "]] ([[" + i.title() + "/Sviluppo|bollettino]])\n"
pagSen.put(testo, "[[Wikibooks:Bot|Bot]]: aggiorno il log dei bollettini non creati")
def speciali():
# Aggiorna le pagine utili se sono vecchie
if vecchio("Progetto:Coordinamento/Bollettini/PagineOrfane"):
sito = wikipedia.getSite(code='it',fam='wikibooks')
orfane = wikipedia.Page(sito, "Progetto:Coordinamento/Bollettini/PagineOrfane")
noncat = wikipedia.Page(sito, "Progetto:Coordinamento/Bollettini/NonCategorizzate")
testo = ""
for pa in sito.lonelypages(number = 10000, repeat = False):
testo = testo + "[[" + pa.title() + "]]\n"
orfane.put(testo, "[[Wikibooks:Bot|Bot]]: aggiorno pagina utile")
testo = ""
for pa in sito.uncategorizedpages(number = 10000, repeat = False):
testo = testo + "[[" + pa.title() + "]]\n"
noncat.put(testo, "[[Wikibooks:Bot|Bot]]: aggiorno pagina utile")
def vecchio(nomePag):
# Controlla se la pagina non è stata modificata da un giorno.
# Se sì restituisce True, altrimenti False
sito = wikipedia.getSite(code='it',fam='wikibooks')
pagina = wikipedia.Page(sito,nomePag)
cronologia = pagina.getVersionHistory()[0][0]
cronologia = re.sub("T.+Z", "", cronologia)
frt = ""
cosa = str(datetime.today().year)
frt = frt + cosa
cosa = str(datetime.today().month)
if len(cosa) == 1:
cosa = "0" + cosa
frt = frt + "-" + cosa
cosa = str(datetime.today().day)
if len(cosa) == 1:
cosa = "0" + cosa
frt = frt + "-" + cosa
if cronologia != frt:
return True
else:
return False
def variabili():
# setta le variabili principali e globali
global tutte
tutte = set(pagegenerators.AllpagesPageGenerator(namespace = 0))
global libri
libri = set()
for j in tutte:
f = re.search("/|\\|:|Pagina principale", j.title())
if f == None:
libri.add(j)
if __name__ == "__main__":
try:
inizio()
finally:
wikipedia.stopme()
wikipedia.output("\n Distributed under the terms of the GFDL\n Created by [[it:b:User:G4]]")
Vedi anche: Template:Bollettino/Script