Aiuto:Bollettino
Wikibooks, manuali e libri di testo liberi.
Organizzare le pagine: Convenzioni di nomenclatura · Moduli e sottopagine · Categorie
Pagina principale del libro: Libri correlati · Bibliografia · Altri progetti · Collegamenti esterni · Categorizzazione tematica · Categorizzazione alfabetica
Migliorare la qualità: Fasi di sviluppo · Copertina · Indice di navigazione · Indicizzazione · Versione stampabile · Bollettino · Esercizi
Altre convenzioni: Manuale di stile · Convenzioni linguistiche · Testi commentati · Realizzare un libro con le voci di Wikipedia · Inserire trame e formule chimiche
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.
[modifica] Cosa fanno i bollettini?
I 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.
[modifica] Dove si trovano i bollettini?
I bollettini si possono trovare nella sottopagina Sviluppo del libro in questione. Ad esempio il bollettino del libro Magic si può trovare a Magic/Sviluppo. Vi si può arrivare dal template di navigazione o dalla copertina del libro.
[modifica] Quanti sono i bollettini?
Attualmente i bollettini sono 243. Puoi saperlo usando il template {{NUMBEROFBOLLETTINI}}.
[modifica] Come posso usare un bollettino?
I 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.
[modifica] Icone di variazione
Dalla 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.
[modifica] Come posso richiedere la creazione del bollettino del mio nuovo libro?
Per richiedere un bollettino, basta segnalare il libro al Progetto apposito. Di norma viene creato un bollettino per ciascuno dei libri nuovi citati al Wikibookiano.
[modifica] Sono di altre wiki o di una straniera e vorrei lo script...
Eccoti accontentato:
[modifica] bollettino.py v. 1.16.1
-
# -*- 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]]")