Utente:G4/Script
Wikibooks, manuali e libri di testo liberi.
Indice |
[modifica] Carte di Magic
[modifica] inseriscicarte.py v. 1.50 BETA
#!/usr/bin/env python # -*- coding: utf-8 -*- # #Created by [[it:b:User:Gianlu4]] # import re, wikipedia, codecs, _mysql def main(): args = wikipedia.handleArgs() serialBegin = 1 # Da dove deve cominciare? default=1 all = False for currentArgument in args: if currentArgument.startswith("-start:"): serialBegin = int(currentArgument[7:]) # Se l'utente dice da dove deve cominciare, lo memorizza if currentArgument.startswith("-always"): all = True #page = wikipedia.Page(wikipedia.getSite(), "Utente:Gianlu4Bot/Sandbox") # Solo per test db = _mysql.connect(host='localhost', user='MagicBot', passwd='**********', db='magic_cards_2003') db.query("SELECT COUNT(Numero) FROM magic_cards") # Conta le carte num = int(db.store_result().fetch_row(how=1)[0]['COUNT(Numero)']) + 1 templateFile = codecs.open("modellocarta.txt", "r", "utf-8") modellovoce = templateFile.read() # Legge il modello della voce templateFile.close() for i in range(serialBegin, num): # Ottiene tutte le info sulla carta corrente db.query("SELECT * FROM magic_cards WHERE Numero LIKE " + str(i)) dict = db.store_result().fetch_row(how=1)[0] page = wikipedia.Page(wikipedia.getSite(), "Magic/Carte/" + str(dict['Set'])) # Ottiene la pagina da modificare wikipedia.output(">>>>> " + page.title() + " - Record " + str(i) + " <<<<<") if(page.exists()): oldtxt = page.get() else: oldtxt = '' elencoSostituzioni = [ "Nome_Carta", "English", "Costo", "Tipo", "F_C", "Rarita", "Set", "Testo" ] # Dato un testo ed un dizionario di sostituzioni # usa le regex per il "find and replace" for k in elencoSostituzioni: modellovoce = re.sub(k, dict[k], modellovoce) # Sostituzioni HTML->wikimarkup modellovoce = re.sub("< */? *(em|EM) *>", "''", modellovoce) newtxt = modellovoce wikipedia.showDiff(oldtxt, newtxt) if (not all): # Chiede la conferma prima di # editare (se non è in modalità automatica) choice = wikipedia.inputChoice(u"Aggiungo questa carta?", ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N') else: choice = 'y' if choice in ['A', 'a']: all = True choice = 'y' if choice in ['Y', 'y']: wikipedia.setAction(u'[[Wikibooks:Bot|Bot]]: Aggiunta carta: ' + dict['Nome_Carta']) page.put(oldtxt + "\n" + newtxt) if __name__ == "__main__": try: main() finally: wikipedia.stopme()
[modifica] modellocarta.txt
{{Carta Magic
|italiano=Nome_Carta
|inglese=English
|costo=Costo
|tipo=Tipo
|rar=Rarita
|forzacosti=F_C
|espan=Set
|testo=Testo
}}
[modifica] Inserire testi
Per un corretto funzionamento c'è bisogno di un file sul Disco Rigido (C:) chiamato testo.txt e con codifica ANSI che sia strutturato secondo il seguente codice:
NOME_DELLA_PAGINA<<TESTO DA INSERIRE
Un elemento per riga.
[modifica] Versione 2
Con la versione 2 viene liberalizzato il percorso del file. Da questa versione:
-cartella indica il percorso (ad esempio c:/) -file indica il nome del file (ad esempio testo.txt) Quindi un esempio è: inseriscitesto.py -cartella:c:/ -file:testo.txt
[modifica] inseriscitesto.py v. 3.50 BETA
-
import string
-
import wikipedia -
-
def main():
-
crlf = "\n" -
all = False -
cart = "c:/" -
file = "testo.txt" -
args = wikipedia.handleArgs() -
for currentArgument in args: -
if currentArgument.startswith("-cartella:"): -
cart = currentArgument[10:] -
# Se l'utente dice da dove deve cominciare, lo memorizza -
if currentArgument.startswith("-file:"): -
file = currentArgument[6:] -
# Se l'utente dice da dove deve cominciare, lo memorizza -
if currentArgument.startswith("-always"): -
all = True -
nomefile = cart + file -
f = open(nomefile, 'r') -
for line in f.readlines(): -
w = line.split('<<') -
i = len(w) -
if i > 1 : -
sito=wikipedia.getSite(code='it',fam='wikibooks') -
pl = wikipedia.Page(sito, w[0]) -
testo_originale = pl.get() -
-
testo_nuovo = testo_originale + crlf + w[1] -
-
if (not all): -
# Chiede la conferma prima di -
# editare (se non è in modalità automatica) -
wikipedia.output(">>>>>" + pl.title() + "<<<<<\n\n") -
wikipedia.showDiff(testo_originale, testo_nuovo) -
choice = wikipedia.inputChoice(u"Aggiungo questo testo?", ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N') -
else: -
choice = 'y' -
if choice in ['A', 'a']: -
all = True -
choice = 'y' -
if choice in ['Y', 'y']: -
pl.put(testo_nuovo,'[[Wikibooks:Bot|Bot]]: Aggiungo: "' + w[1] + '"') -
f.close() -
-
if __name__ == "__main__":
-
try: -
main() -
except: -
wikipedia.stopme() -
raise -
else: -
wikipedia.stopme()
[modifica] Avanzamento
Versione evoluta di inseriscitesto.py.
[modifica] Avanzamento.py v. 1.10
-
import string
-
import wikipedia -
import re
-
-
def main():
-
crlf = "\n{{Avanzamento|" -
crd = "%}}" -
all = False -
cart = "c:/" -
file = "testo.txt" -
argomenti = wikipedia.handleArgs() -
for corrente in argomenti: -
if corrente.startswith("-cartella:"): -
cart = currentArgument[10:] -
if corrente.startswith("-file:"): -
file = currentArgument[6:] -
if corrente.startswith("-always"): -
all = True -
nomefile = cart + file -
fonte = open(nomefile, 'r') -
for line in fonte.readlines(): -
testo = line.split('<<') -
i = len(testo) -
if i > 1 : -
sito=wikipedia.getSite(code='it',fam='wikibooks') -
pl = wikipedia.Page(sito, testo[0]) -
testo_originale = pl.get() -
-
testo[1] = re.sub("\n", "", testo[1]) -
testo_nuovo = testo_originale + crlf + testo[1] + crd -
-
if (not all): -
wikipedia.output(">>>>>" + pl.title() + "<<<<<\n") -
wikipedia.output("Si sta tentando di categorizzare\n la pagina come " + testo[1] + "%\n") -
choice = wikipedia.inputChoice(u"Categorizzo?", ['Si', 'No', 'Tutti'], ['S', 'N', 'T'], 'N') -
else: -
choice = 'S' -
if choice in ['T', 't']: -
all = True -
choice = 'S' -
if choice in ['S', 's']: -
pl.put(testo_nuovo,'[[Wikibooks:Bot|Bot]]: Categorizzo: "' + testo[1] + '%"') -
fonte.close() -
-
if __name__ == "__main__":
-
try: -
main() -
except: -
wikipedia.stopme() -
raise -
else: -
wikipedia.stopme()
[modifica] Statistiche moduli
Qusto è lo script utilizzato per aggiornare la tabella del lavoro sporco.
[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
-
# -*- coding: utf-8 -*- -
-
""" -
-
############################################# -
# # -
# Distributed under the terms of the GFDL # -
# Created by [[it:b:User:G4]] # -
# # -
############################################# -
-
Description: -
This script is used for updating [[it:b:Template:Statistiche manutenzioni]] -
it counts the number of pages in each category of "Lavoro sporco" -
and puts them in the template -
-
""" -
-
import wikipedia, re
-
from catlib import Category
-
-
def main():
-
aiuto = False -
msg = "conto lavoro sporco" -
global controllo -
controllo = True -
global pagine -
pagine = True -
visuale = False -
global categorie -
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%"] -
for argomento in wikipedia.handleArgs(): -
if argomento.startswith("-pagina:"): -
pagina = wikipedia.Page(sito, argomento[8:]) -
if argomento.startswith("-noVer"): -
controllo = False -
if argomento.startswith("-noPag"): -
pagine = False -
if argomento.startswith("-visuale"): -
visuale = True -
pagine = False -
if argomento.startswith("-msg:"): -
msg = re.sub("_", " ", str(argomento[5:])) -
if argomento.startswith("-aiuto"): -
aiuto = True -
if (aiuto): -
help() -
if (controllo): -
aggiornamenti() -
if (pagine): -
statistiche(msg) -
if (visuale): -
vedi() -
-
def help():
-
wikipedia.output("\n HAI CHIESTO AIUTO\n\n") -
wikipedia.output("Questo script (creato da G4) conta le pagine di alcune categorie\n") -
wikipedia.output("di lavoro sporco e, grazie ad un apposito template, aggiorna le\n") -
wikipedia.output("statistiche relative\n\n") -
wikipedia.output("Lo script supporta i parametri:\n\n") -
wikipedia.output(" -aiuto (che stai utilizzando adesso)\n") -
wikipedia.output(" -noPag che comanda al bot di controllare soltanto la versione\n") -
wikipedia.output(" -noVer che comanda al bot di non controllare la versione\n") -
wikipedia.output(" -pagina: che comanda al bot di mettere il template in una pagina diversa\n") -
wikipedia.output(" -visuale che comanda al bot di stampare a video i risultati del conteggio\n") -
wikipedia.output(" -msg: che comanda al bot di dare un messaggio diverso dal solito (che deve") -
wikipedia.output(" essere messo dopo il nome del parametro. Il bot sostituirà") -
wikipedia.output(" automaticamente gli _ con spazi.\n") -
wikipedia.output("Grazie per aver usato l'aiuto di moduli.py\n") -
global pagine -
pagine = False -
global controllo -
controllo = False -
-
def aggiornamenti():
-
versione = u'8.82' -
sito = wikipedia.getSite(code='it',fam='wikibooks') -
pagVer = wikipedia.Page(sito, "Template:Statistiche manutenzioni/Script/Versione") -
ver = u'' + pagVer.get() -
if ver <= versione: -
wikipedia.output("\nNon sono state rilasciate nuove versioni di moduli.py (si sta usando la " + ver +")\n") -
else: -
wikipedia.output("\nE' USCITA UNA NUOVA VERSIONE DI MODULI.PY (la " + ver + ")\n") -
global pagine -
pagine = False -
-
def statistiche(messaggio):
-
sito = wikipedia.getSite(code='it',fam='wikibooks') -
global categorie -
pagina = wikipedia.Page(sito, u'Template:Statistiche manutenzioni') -
nuovo = u"{{Statistiche manutenzioni/Tabella\n" -
nuovo = nuovo + u"|Data={{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} {{subst:LOCALTIME}}\n" -
for k in categorie: -
corrente = Category(sito, 'Categoria:' + k) -
if k == u"Da controllare": -
catCount = len(corrente.articlesList(recurse=False)) -
else: -
catCount = len(corrente.articlesList(recurse=True)) -
k = re.sub("Moduli ", "", k) -
k = re.sub("Libri ", "L", k) -
nuovo = nuovo + "|" + k + "=" + str(catCount) + "\n" -
nuovo = speciali(nuovo, sito, "Orfane", "|Orfane=") -
nuovo = speciali(nuovo, sito, "Categorizzare", "|NoCat=") -
nuovo = speciali(nuovo, sito, "NoInterwiki", "|NoInterwiki=") -
nuovo = nuovo + "}}" -
nuovo = nuovo + u"\n<noinclude>[[Categoria:Coordinamento| ]]</noinclude>" -
pagina.put(nuovo, "[[Wikibooks:Bot|Bot]]: " + messaggio) -
-
def speciali(vecchio, sito, cosa, stringa):
-
if (cosa == "Orfane"): -
speciale = sito.lonelypages(number = 10000, repeat = False) -
if (cosa == "Categorizzare"): -
speciale = sito.uncategorizedpages(number = 10000, repeat = False) -
if (cosa == "NoInterwiki"): -
speciale = sito.withoutinterwiki(number = 10000, repeat = False) -
k = 0 -
for i in speciale: -
k = k + 1 -
nuovo = vecchio + stringa + str(k) + u"\n" -
return nuovo -
-
def vedi():
-
sito = wikipedia.getSite(code='it',fam='wikibooks') -
global categorie -
nuovo = u"\n\n" -
for k in categorie: -
corrente = Category(sito, 'Categoria:' + k) -
catCount = len(corrente.articlesList(recurse=True)) -
nuovo = nuovo + k + ": " + str(catCount) + "\n" -
nuovo = speciali2(nuovo, sito, "Orfane", "Orfane: ") -
nuovo = speciali2(nuovo, sito, "Categorizzare", "Da categorizzare: ") -
nuovo = speciali2(nuovo, sito, "NoInterwiki", "Senza Interwiki: ") -
nuovo = nuovo + u"\n" -
wikipedia.output(nuovo) -
-
def speciali2(vecchio, sito, cosa, stringa):
-
if (cosa == "Orfane"): -
speciale = sito.lonelypages(number = 10000, repeat = False) -
if (cosa == "Categorizzare"): -
speciale = sito.uncategorizedpages(number = 10000, repeat = False) -
if (cosa == "NoInterwiki"): -
speciale = sito.withoutinterwiki(number = 10000, repeat = False) -
k = 0 -
for i in speciale: -
k = k + 1 -
nuovo = vecchio + stringa + str(k) + u"\n" -
return nuovo -
-
if __name__ == "__main__":
-
try: -
main() -
finally: -
wikipedia.stopme()
[modifica] moduli.py versione toolserver
-
# -*- coding: utf-8 -*- -
-
""" -
-
############################################# -
# # -
# Distributed under the terms of the GFDL # -
# Created by [[it:b:User:G4]] # -
# # -
############################################# -
-
Description: -
This script is used for updating [[it:b:Template:Statistiche manutenzioni]] -
it counts the number of pages in each category of "Lavoro sporco" -
and puts them in the template -
-
""" -
-
import wikipedia, re
-
from catlib import Category
-
-
def main():
-
msg = "conto lavoro sporco" -
global pagine -
pagine = True -
global categorie -
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%"] -
-
aggiornamenti() -
if (pagine): -
statistiche(msg) -
-
def aggiornamenti():
-
versione = u'8.82' -
sito = wikipedia.getSite(code='it',fam='wikibooks') -
pagVer = wikipedia.Page(sito, "Template:Statistiche manutenzioni/Script/Versione") -
ver = u'' + pagVer.get() -
if ver > versione: -
global pagine -
pagine = False -
-
def statistiche(messaggio):
-
sito = wikipedia.getSite(code='it',fam='wikibooks') -
global categorie -
pagina = wikipedia.Page(sito, u'Template:Statistiche manutenzioni') -
nuovo = u"{{Statistiche manutenzioni/Tabella\n" -
nuovo = nuovo + u"|Data={{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} {{subst:LOCALTIME}}\n" -
for k in categorie: -
corrente = Category(sito, 'Categoria:' + k) -
if k == u"Da controllare": -
catCount = len(corrente.articlesList(recurse=False)) -
else: -
catCount = len(corrente.articlesList(recurse=True)) -
k = re.sub("Moduli ", "", k) -
k = re.sub("Libri ", "L", k) -
nuovo = nuovo + "|" + k + "=" + str(catCount) + "\n" -
nuovo = speciali(nuovo, sito, "Orfane", "|Orfane=") -
nuovo = speciali(nuovo, sito, "Categorizzare", "|NoCat=") -
nuovo = speciali(nuovo, sito, "NoInterwiki", "|NoInterwiki=") -
nuovo = nuovo + "}}" -
nuovo = nuovo + u"\n<noinclude>[[Categoria:Coordinamento| ]]</noinclude>" -
pagina.put(nuovo, "[[Wikibooks:Bot|Bot]]: " + messaggio) -
-
def speciali(vecchio, sito, cosa, stringa):
-
if (cosa == "Orfane"): -
speciale = sito.lonelypages(number = 10000, repeat = False) -
if (cosa == "Categorizzare"): -
speciale = sito.uncategorizedpages(number = 10000, repeat = False) -
if (cosa == "NoInterwiki"): -
speciale = sito.withoutinterwiki(number = 10000, repeat = False) -
k = 0 -
for i in speciale: -
k = k + 1 -
nuovo = vecchio + stringa + str(k) + u"\n" -
return nuovo -
-
-
if __name__ == "__main__":
-
try: -
main() -
finally: -
wikipedia.stopme()
[modifica] Bollettini
[modifica] Parametri
[modifica] -file:xxx
Il parametro file indica al bot di cercare sul disco rigido locale un file di testo che elenchi i libri dei quali fare i bollettini.
Esempio: bollettino.py -file:c:/testo_bollettini.txt testo bollettini.txt: Magic C ecc.
Lo script sostituisce gli _ con spazi.
[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]]")
[modifica] Auguri
Questo è lo script utilizzato da G4Bot per augurare buon Natale a tutti coloro che hanno contribuito almeno una volta nella mia talk
[modifica] auguri.py v.1.00
-
# -*- coding: utf-8 -*- -
-
""" -
-
############################################# -
# # -
# Distributed under the terms of the GFDL # -
# Created by [[it:b:User:G4]] # -
# # -
############################################# -
-
-
""" -
-
import wikipedia -
-
def main():
-
sito = wikipedia.getSite(code='it',fam='wikibooks')
-
discussioneMia = wikipedia.Page(sito, "Discussioni utente:G4")
-
utenti = discussioneMia.contributingUsers()
-
for utente in utenti:
-
if utente == "G4": -
continue -
if utente == "G4Bot": -
continue -
discussione = wikipedia.Page(sito, "Discussioni utente:" + str(utente)) -
vecchio = discussione.get() -
nuovo = vecchio + "\n\n==Auguri da G4 e G4Bot==\n\n{{subst:Utente:G4/Auguri}}" -
wikipedia.output(">>>>>" + discussione.title() + "<<<<<\n") -
wikipedia.showDiff(vecchio, nuovo) -
choice = wikipedia.inputChoice(u"Auguro?", ['Si', 'No'], ['S', 'N'], 'N') -
if choice in ['S', 's']: -
discussione.put(nuovo, "[[Wikibooks:Bot|Bot]]: Auguro buon Natale") -
-
if __name__ == "__main__":
-
try: -
main() -
finally: -
wikipedia.stopme()
[modifica] Regex avanzamento - revisione 4
E' in preparazione una regex per il sistemamento del template di avanzamento (che non deve essere a fine pagina). La regex è una bozza. "(\[\[(als|ar|ang|be|bg|bn|ca|cs|cv|cy|da|de|el|en|eo|es|et|fa|fr|fy|gl|he|hu|ia|id|ie|is|ja|ka|ko|ku|la|lt|mk|ml|na|nl|no|pl|pt|ro|ru|simple|sk|sl|sq|sr|su|fi|sv|ta|th|tl|tr|tt|uk|vi|zh):(.*)?\]\])*?(\n)?(\[\[[Cc]ategoria:.*\]\])*?(\n)?\{\{[Aa]vanzamento\|(00|25|50|75|100)%\}\}"
[modifica] Disclaimer
L'Utente:G4 ed il suo bot non si prendono responsabilità sull'uso degli script sovrastanti da parte di terzi. Pertanto comunicano che è da imputare la responsabilità a loro solo e soltanto se sono gli stessi a compiere gli edit.
- Firmato
- G · 4° è meglio
- G 4 · The Robot