Discussioni progetto:Bot/Archivio/2008-2014: differenze tra le versioni

Contenuti della pagina non supportati in altre lingue.
Da Wikisource.
Contenuto cancellato Contenuto aggiunto
Aubrey (discussione | contributi)
Riga 468: Riga 468:
::Lo script mi piace moltissimo, di una facilità disarmante. Scusa se non ti ho detto subito che l'ho provato.
::Lo script mi piace moltissimo, di una facilità disarmante. Scusa se non ti ho detto subito che l'ho provato.
::Sta sicuro che ci tengo dietro ;-) --[[Utente:Aubrey|<span style= "font-family:Palatino Linotype, serif" >Aubrey</span>]] [[Discussioni_utente:Aubrey|<span style= "font-family:Palatino Linotype, serif" >McFato</span>]] 19:28, 3 set 2009 (CEST)
::Sta sicuro che ci tengo dietro ;-) --[[Utente:Aubrey|<span style= "font-family:Palatino Linotype, serif" >Aubrey</span>]] [[Discussioni_utente:Aubrey|<span style= "font-family:Palatino Linotype, serif" >McFato</span>]] 19:28, 3 set 2009 (CEST)
=== Allora si parte ===
Lo stato dell'arte e la filosofia della cosa è: lo script fa tutto lui. I due nuovi parametri nominali hanno questo scopo:
# '''user =''' : serve al bot per sapere chi ha chiesto cosa. Nome "secco", senza Utente: e senza quadre. Sarà utilizzato, con calma, per spedire notifiche, inviare mail e quant'altro. Potrei ricavarlo comunque ma non ho voglia di trabajar, perchè il risultato - anche rovistando nella cronologia - potrebbe essere sbagliato.
# '''page =''' : servirà al bot per capire che l'azione è richiesta apponendo un tl|ToAlebot nella pagina xxx, ma va eseguita sulla pagina yyy. Quindi deve agire su yyy, ma poi anche su xxx per disattivare la richiesta. In un primo tempo yyy sarà il nome di '''una''' pagina, poi diventerà opzionalmente una lista e poi magari una categoria o un intero ns o tutti i progetti della famiglia wikisource in tutto il mondo... ''Chi pol dir''. :-)--[[User:Alex brollo|Alex brollo]] ([[User talk:Alex brollo|disc.]]) 19:53, 3 set 2009 (CEST)

Versione delle 18:53, 3 set 2009

Bar del Coordinamento, il bar del progetto bot

Categoria: Discussioni del progetto botPortale progetti   Progetto bot   Bar del Coordinamento 

Benvenuti nel Bar del progetto bot, dove si ritrovano i wikisourciani interessati ai bot.

Questo luogo è un punto d'appoggio del Progetto Bot, in cui si possano porre domande, inserire comunicazioni e coordinare il lavoro Tra gli utenti interessati al progetto.

Per argomenti di carattere più generale è meglio rivolgersi al Wikisource:Bar.

Si invita a spostare nell'archivio le discussioni chiuse.


Dal 2017 Il bar si è trasferito al Bar generalista

Archivio
Archivio del bar
Discussioni progetto:Bot/Menu bar tematici

I programmi

Qui i primi programmi spostati sul progetto. Sto impazzando per inserire in automatico la data di modifica della pagina che li contiene per aiutare i bottaroli così da capire se il codice sia stato aggiornato e quando. Chi ha idee sul come farlo si faccia avanti! -- iPorkscrivimi 22:03, 3 gen 2008 (CET)[rispondi]

Icona

Cari Botolatori,

ho trovato questa icona e mi è piaciuta:

  • è in svg
  • è pensata proprio come icona e non come immagine
  • rappresenta un roboto e delle doppie quadre
  • non è del tutto fuori luogo con i colori del progetto (colori che peraltro possono essere cambiati all'occorrenza...)

Che ve ne pare? - εΔω 10:42, 4 gen 2008 (CET)[rispondi]

Sinceramente preferisco gli ingranaggi colorati, così da un tocco di colore. L'icona con il robot è carina ma IMO dovrebbe essere in negativo, cioè con il robot colorato e lo sfondo trasparente. Ovviamente de gustibus! --Accurimbono (disc) 13:42, 4 gen 2008 (CET)[rispondi]
Bella come immagine, poco usable come icona. Potremmo inserirla qui e nella pagina di aiuto. Che ne dite? -- iPorkscrivimi 12:47, 14 gen 2008 (CET)[rispondi]
Mi piace molto l'immagine, forse però davvero come icona non va bene. Se magari facciamo una prova... (io ora sono occupato con dei bot reali ;-)) Aubrey McFato 12:59, 1 feb 2008 (CET)[rispondi]

Nuovo lavoro per i bot: sostituzione {{Bibbia}} con il template {{Intestazione Bibbia}}

A seguito dell'aggiornamento del template per le intestazioni del progetto Bibbia c'è da fare la sostituzione {{Bibbia}} con il template {{Intestazione Bibbia}}. Chi mastica un po' di regex si faccia avanti ^___^ -- iPorkscrivimi 12:46, 14 gen 2008 (CET)[rispondi]

Nuovo lavoro per i bot: sostituzione {{Generale}} con il template {{Intestazione}}

Prosegue l'opera di aggiornamento dei template intestazione. C'è da fare la sostituzione {{Generale}} con il template {{Intestazione}}. Chi mastica un po' di regex si faccia avanti -- iPorkscrivimi 10:54, 3 feb 2008 (CET)[rispondi]

Coordinamento sostituzione template {{Opera}}

Ho bisogno di aiuto per compilare le liste delle pagine da modificare per la sostituzione del template {{Opera}}. Qui ho creato una pagina per coordinare il lavoro. Se è poco chiara chiedete e modificate. Se riuscite a darmi una mano riusciamo a fare le cose in tempi più veloci. Aubrey McFato 16:08, 3 feb 2008 (CET)[rispondi]

Nuovo lavoro per i bot: sostituzione Tesi con il template {{Intestazione tesi}}

Prosegue l'opera di aggiornamento dei template intestazione. C'è da fare la sostituzione Tesi con il template {{Intestazione tesi}}. Chi mastica un po' di regex si faccia avanti. -- iPorkscrivimi 18:05, 3 feb 2008 (CET)[rispondi]

✔ Fatto -- iPorkscrivimi 10:13, 4 feb 2008 (CET)[rispondi]

Nuovo lavoro per i bot: sostituzione {{Canzone}} con il template {{Intestazione CantaStoria}}

Prosegue l'opera di aggiornamento dei template intestazione. C'è da fare la sostituzione {{Canzone}} con il template {{Intestazione CantaStoria}}. Chi mastica un po' di regex si faccia avanti. -- iPorkscrivimi 09:41, 5 feb 2008 (CET)[rispondi]

Io ho il bot pronto, devo soltanto testarlo. All'inizio pensavo di farlo andare su tutti i canti che usano il template {{canzone}}, ma c'è il problema dei secoli. Il fatto è che moltissimi canti, da una rapida occhiata, non hanno neppure l'anno (oltre che gli autori), e soprattutto non hanno categorie temporali (canti del XX secolo, canti del XIX secolo)... Se vogliamo fare le cose bene bisognerebbe passarli uno ad uno, senza bot: se vogliamo il bot non mettiamo i secoli oppure si fa una divisione dei canti in liste per secolo (che io non saprei fare). Che dici ;-) ?Aubrey McFato 14:20, 5 feb 2008 (CET)[rispondi]
Hai visto bene. Io direi di sostituire il template lasciando il secolo non indicato. Li ripasso poi io e li sistemo. -- iPorkscrivimi 17:02, 5 feb 2008 (CET)[rispondi]
Ok, vado con la mega sostituzione. Tu dacci un'occhio ;-) Aubrey McFato 17:05, 5 feb 2008 (CET)[rispondi]

Automazione!

Grazie a Pietrodn stiamo facendo in modo che tutti i programmi che gestiscono il sito (conteggi autori, aggiornamento pagine di servizio con gli indici, conteggi e tabelle per il nuovo SAL, etc.) vengano gestiti in remoto in modo automatico. In pratica una volta al giorno (verso l'una di notte) il bot di pietro agirà in automatico tutti i giorni. Così facendo avremo sempre le pagine aggiornate e potremo usare i programmi solo all'occorrenza. Appena il sistema parte facciamo una festicciola in chat per il traguardo raggiunto! -- iPorkscrivimi 00:09, 18 feb 2008 (CET)[rispondi]

Ottima idea, andiamo sempre meglio. Magari potremo anche dare un rifinitura al bot per le statistiche di manutenzione (quello che vovrebbe dare i numeri al {{Memento}}) e far finalmente partire anche quello: se è ritenuto utile, ovviamente. ((ma secondo me si, ho qualche idea al riguardo)). Aubrey McFato 12:00, 18 feb 2008 (CET)[rispondi]

I programmi nuovi

Ho rinominato i programmi per i bot, così hanno la stessa forma, e ne ho aggiunti di nuovi che stiamo usando per gli elenchi dei testi in base al SAL. Come vedete dall'elenco ora è indicato quali funzionano in automatico e quindi vanno usati a mano solo quando serve. -- iPorkscrivimi 09:23, 2 mar 2008 (CET)[rispondi]

domanda

Questo è stato sostituito e reso obsoleto da quest'altro? --Accurimbono (disc) 08:59, 9 mar 2008 (CET)[rispondi]

Si. Ora l'ho cancellato. -- iPorkscrivimi 10:07, 9 mar 2008 (CET)[rispondi]
Grazie, dopo un mio bel periodo di latitanza ho visto che sono stati fatti molti progressi nel SAL 2.0, ho sistemato i link ai bot nella mia pagina utente e l'ho aggiornata nelle intestazione e nell'archivio discussioni ispirandomi spudoratamente a te! ;) --Accurimbono (disc) 10:13, 9 mar 2008 (CET)[rispondi]
Visto ;o) Per i bot dove è indicato si nel'automatico significa che vengono lanciati ogni notte in modo automatico e che quindi si usano a mano solo all'occorrenza. -- iPorkscrivimi 11:56, 9 mar 2008 (CET)[rispondi]
Lanciati di notte da chi? Ci appoggiamo ad un server? --Accurimbono (disc) 13:17, 9 mar 2008 (CET)[rispondi]
Ho letto sopra, ci pensa Pietrodn. --Accurimbono (disc) 13:18, 9 mar 2008 (CET)[rispondi]

Due bot per i testi antichi

Mi sono imbattuto nei problemi di normalizzazione della grafia dei testi antichi e se sapessi scrivere un bot (il mio python ha la ruggine) scriverei innanzitutto due bot per la normalizzazione e restituzione della grafia originale delle lettere u/v. [....]--Alex brollo (disc.) 13:05, 21 ago 2008 (CEST)[rispondi]

Ci ho pensato meglio, [....] --Alex brollo (disc.) 00:05, 7 ago 2008 (CEST)[rispondi]
Ci ho pensato meglio ancora. La conclusione è che non ci penso più. Mi sono convinto che ogni manipolazione del testo, anche con le migliori intenzioni, va fatta fuori it.wikisource. Comunque la cosa mi è servita per riprendere in mano il vecchio, caro python... Quindi è stata utile. --Alex brollo (disc.) 15:22, 20 ago 2008 (CEST)[rispondi]

Dizionari dei testi

Una piccola e veloce routine python (primordiale) che ho scritto accetta un testo e restituisce la lista ordinata delle parole complete e delle "non parole" (sequenze di caratteri non alfabetici) che vi sono interposte. Riconcatenando gli elementi della lista si ottiene il testo iniziale tal quale. Non ce le ho qui, ma aggiungerò al messaggio le poche righe di codice che fanno ciò. Sono così arrugginito che quelle poche righe mi sono costate sangue. Sono scritte nel python del tutorial... senza alcun modulo aggiunto. Al peggio, chi conosce bene pyhton si farà qualche bella risata.  :-(

Passo successivo, molto facile: creare una lista ordinata delle diverse parole presenti nel testo (ossia, il suo dizionario).

Da qui la fantasia spazia. Si possono facilmente identificare e visualizzare in un secondo testo le parole "nuove", un grande aiuto a pescare i più insidiosi errori di trascrizione dei testi antichi (es: "avremo" invece di "havremo", "a" invece di "à", "ora" invece di "hora"....) che nessun dizionario pesca perchè ritiene la parola giusta e adatta all'italiano; ma anche, audacemente, ipotizzare sostituzioni di massa di parole con altre (Edo non leggere) per vari livelli di normalizzazione o addirittura modernizzazione automatizzata. Si possono passare i vocabolari agli amici di wikizionario... si possono estrarre, identificandole facilmente fra le parole con iniziale maiuscola, nomi di luoghi e di personaggi... si possono elencare le più inusuali istanze dell'uso dell'apostrofo... si possono produrre statistiche sulla frequenza delle parole... forse si potranno elencare le parole con tilde... ecc. ecc. ecc.

Sperimentalmente, se nessuno obietta, creerò nelle pagine in formato testuale una sottopagina "Dizionario" che contiene il relativo vocabolario, ossia l'elenco di tutte le parole separate da un semplice spazio (così una passata con la funzione split di python ricostruisce la lista senza tante storie).--Alex brollo (disc.) 12:33, 19 ago 2008 (CEST)[rispondi]

Siccome ogni promessa è debito, ecco il codice che - richiamato con dict("nome file input (testo)", "nome file output (testo)") esegue le seguenti cose:
  • legge il testo contenuto in file input,
  • trasforma il testo in una lista di elementi, parole e non-parole,
  • prepara una lista ordinata delle differenti parole (il "dizionario) e la scrive su file output,
  • restituisce un messaggio con il numero degli elementi nella lista e del dizionario.
La routine fa tutto ciò in meno di un secondo per un testo di circa 4000 elementi.
# -*- coding: cp1252 -*-

# legge un file testo e richiama splitter()
def dict(f_input="testo.txt",f_output="vocabolario.txt"):
    f=open(f_input)
    testo=f.read()
    f.close()
    global caratteri
    caratteri="ABCDEFGHILMNOPQRSTUVZJKXYWabcdefghilmnopqrstuvzjkwyx_'ìèòàù&"
    lista=splitter(testo)
    voc=list_to_voc(lista,f_output)
    return voc

# trasforma un testo in una lista di elementi 
def splitter(testo):

    #inizializzazioni
    parole=[]
    elem=""
    ft=len(testo)
    
    #caricamento primo carattere
    tc=(testo[0:1] in caratteri)

    #scorrimento e analisi
    for i in range(ft): 
        elem=elem+testo[i:i+1]
        if not tc == (testo[i+1:i+2] in caratteri): #se il successivo carattere appartiene a altro tipo
            parole.append(elem) # aggiorna lista
            elem=""             # svuota elemeno corrente
            tc=not tc           # e cambia tipo

    # caricamento dell'ultima parola
    parole.append(elem)
    return parole

# crea la lista delle diverse parole  (vocabolario)
def list_to_voc(lista,f_output):
    voc=[] # inizializzazione
    for i in range(len(lista)):
        if lista[i][0:1] in caratteri and not lista[i] in voc:
            voc.append(lista[i])
    # ordinamento alfabetico
    voc.sort()

    #scrittura file output (vocabolario)
    f=open(f_output,"w")
    for i in range(len(voc)):
        f.write(voc[i]+" ")
    f.close()
    print "Il testo contiene "+str(len(lista))+" parole e il vocabolario contiene "+str(len(voc))+" parole."
    return 
Allo scopo di testare la cosa, creo Il cavallarizzo/Dialogo 1/Voc e ci carico il vocabolario di Dialogo 1. --Alex brollo (disc.) 22:19, 19 ago 2008 (CEST)[rispondi]
Non riesco a vedere il numero di parole contate... Sarebbe molto utile riuscire in qualche modo a tenere tracci di quante volte una parola viene citata in una pagina: insomma, riuscire a calcolare le ricorrenze. Fatto per una pagina non so se sia difficile farlo per una testo intero (forse si tratta soltanto di semplici somme di numeri). Forza che facciamo cose belle ;-) Aubrey McFato 22:50, 19 ago 2008 (CEST)[rispondi]
La cosa non dovrebbe essere affatto difficile... basta trasformare voc da lista a dizionario. Due o tre righe di codice in più. Nessun limite ragionevole alla lunghezza dei testi e all'ampiezza dei dizionari/delle liste, python è parco nell'uso della memoria. Nel testo-vocabolario non è riportato il numero delle parole, è un messaggio di output video del programma (giusto per sapere cos'ha combinato in quella frazione di secondo che ci mette a finire il lavoro). Ma posso stampare una testata con qualche statistica che stia in una o due righe. L'analisi delle ricorrenze no, quella non la pubblicherei ... la sciverei su un secondo file output. --Alex brollo (disc.) 00:12, 20 ago 2008 (CEST)[rispondi]


Ecco la nuova versione:

# -*- coding: cp1252 -*-

# legge un file testo e richiama splitter()
def dict(f_input="testo.txt",f_output="vocabolario.txt"):
    f=open(f_input)
    testo=f.read()
    f.close()
    global caratteri
    caratteri="ABCDEFGHILMNOPQRSTUVZJKXYWabcdefghilmnopqrstuvzjkwyx_'ìèòàù&"
    lista=splitter(testo)
    voc,stat=list_to_voc(lista,f_output)
    return (voc,stat)

# trasforma un testo in una lista di elementi 
def splitter(testo):

    #inizializzazioni
    parole=[]
    elem=""
    ft=len(testo)
    
    #caricamento primo carattere
    tc=(testo[0:1] in caratteri)

    #scorrimento e analisi
    for i in range(ft): 
        elem=elem+testo[i:i+1]
        if not tc == (testo[i+1:i+2] in caratteri): #se il successivo carattere appartiene a altro tipo
            parole.append(elem) # aggiorna lista
            elem=""             # svuota elemeno corrente
            tc=not tc           # e cambia tipo

    # caricamento dell'ultima parola
    parole.append(elem)
    return parole

# crea la lista delle diverse parole  (vocabolario)
def list_to_voc(lista,f_output):
    voc=[] # inizializzazione
    stat={} 
    for i in range(len(lista)):
        if lista[i][0:1] in caratteri:
            if not lista[i] in voc:
                voc.append(lista[i])
                stat[lista[i]]=1
            else:
                stat[lista[i]]=stat[lista[i]]+1
    # ordinamento alfabetico
    voc.sort()

    #scrittura file output (vocabolario)
    f=open(f_output,"w")
    f.write("Il testo contiene "+str(len(lista))+" parole e il vocabolario contiene "+str(len(voc))+" parole.\n\n")
    for i in range(len(voc)):
        f.write(voc[i]+" ")
    f.close()
    f=open("stat.txt","w")
    for i in range(len(voc)):
        f.write(voc[i]+"\t"+str(stat[voc[i]])+"\n")
    f.close()
    print "Il testo contiene "+str(len(lista))+" parole e il vocabolario contiene "+str(len(voc))+" parole."
    return voc,stat

Questa scrive una testatina sul file di output principale (default vocabolario.txt) e in più scrive la lista con il numero di ricorrenze su stat.txt, pronta a essere copincollata su excel per giocarci. Ho approfittato per rimediare a una svista (anche il carattere & è una parola) --Alex brollo (disc.) 01:00, 20 ago 2008 (CEST)[rispondi]

Routine di evidenziazione parole sospette

Questa routine, da aggiundege al programma precedente, esegue il confronto fra un testo e un vocabolario, e produce un nuovo testo in cui tutte le parole "nuove" (sospette), rispetto al vocabolario, sono marcate da Template:?.

def ki(filetesto="testo.txt",filevoc="vocabolario.txt",fileoutput="testo1.txt"):
    global caratteri
    caratteri="ABCDEFGHILMNOPQRSTUVZJKXYWabcdefghilmnopqrstuvzjkwyx_'ìèòàù&"
    nw=0
    f=open(filetesto)
    testo=f.read()
    f.close()
    f=open(filevoc)
    voc=f.read()
    f.close()
    voc=voc.split()
    lista=splitter(testo)
    for i in range(len(lista)):
        if lista[i][0:1] in caratteri:
            if not lista[i] in voc:
                nw=nw+1
                lista[i]="{{?|"+lista[i]+"}}"
    f_output=open(fileoutput,"w")
    for i in range(len(lista)):
        f_output.write(lista[i])
    f_output.close()
    print "Sono state individuate "+str(nw)+" parole sospette; il testo è su "+fileoutput
    return

Primo risultato: la pagina Pagina:Il cavallarizzo.djvu/221, dove le parole in arancio sono quelle "marcate" da questa routine. --Alex brollo (disc.) 07:25, 21 ago 2008 (CEST)[rispondi]

Dizionario personale su Firefox

Ho appena scoperto che il controllo ortografico di Firefox aggiunge le parole personali nel file persdict.dat che risiede in una cartella di sistema ed è liberamente editabile (le parole però devono essere suddivise da un solo carattere \n "alla linux").  :-)

Se esistesse la possibilità di caricare su Firefox un dizionario vuoto il controllo ortografico si appoggerebbe solo a persdict.dat... :-) :-) Pensate anche voi quello che penso io? --Alex brollo (disc.) 13:40, 21 ago 2008 (CEST)[rispondi]

Richiesta bot per liste di pagine Indice: classificate per SAL

Le opere dei vari progetti sono listate da un bot che le classifica per SAL. Non ho trovato una lista di opere con testo a fronte (pagine Indice:, elencate nella Categoria:Sommari) da richiamare nel Progetto:Trascrizioni. Sarebbe molto utile che le opere in corso di trascrizione fossero anche classificate per grado di difficoltà; non escluderei di usare la lista eventualmente creata e aggiornata dal bot per inserire i dati in una tabella con alcuni campi aggiuntivi (grado di difficoltà, primo contributore, note). Penso che la cosa potrebbe essere utile, soprattutto per i newbies che "cercano lavoro". --Alex brollo (disc.) 15:31, 20 ago 2008 (CEST)[rispondi]

Credo che faccia parte delle cose da fare di iPork: prima di quest'estate le pagine Indice erano molte meno e si è deciso di darci sotto solo da poco, quindi devono ancora entrare nella rivoluzione SAL 2.0. Tu ricordalo ad iPork e vedrai che le inserisce nella nuova struttura. --Aubrey McFato 20:14, 20 ago 2008 (CEST)[rispondi]

Archivio storico dei permessi accordati ai bot

sto per creare una pagina in cui a partire dai vari log cerco di ricostruire le procedure di attivazione dei primi bot. Lo ritengo un atto dovuto in vista della progressiva regolarizzazione del flagging dei prossimi bot. Se gli utenti attivi possono scrivere qui sotto come è avvenuto il flagging (tramite colloquio via chat, previa "prova su strada" loggati come utenti e non come bot ecc.) sarebbe utile perché sia messo in chiaro. Il fatto che si chiuda un periodo non implica che se ne debba perdere la memoria. - εΔω

Alebot cerca un tutor

La mia idea sarebbe di usare Alebot in modo leggermente anomalo: non per attività ripetitive di verifica/correzione di massa, ma per letture di massa seguite da elaborazione esterna con python dei dati estratti (ed eventuale scrittura dei risultati). In pratica, le routine pywikipedia non saranno lanciate come tali, ma saranno piuttosto integrate in un programma, o meglio in un ambiente python e fungeranno quindi come "interfaccia verso wiki" piuttosto che come script autonomi. In pratica, se le cose funzionano come immagino, pywikipedia mi risparmierà tediosi copia-e-incolla.

Problema: mi troverò di fronte a problemi un po' inconsueti fra i bottolatori, e se possibile avrei bisogno dell'aiuto di qualcuno di voi che maneggi python senza difficoltà, e con pazienza verso chi (io) usa python ma con un approccio do-it-yourself pieno di grossi buchi. :-( .

Primo vergognoso problema: ho impostato UTF-8 come codifica console nell'user-config; carico senza colpo ferire una pagina in una variabile stringa; ma quando tento di scriverla su un file testo, con il metodo .write, python si rifiuta per problemi di codec. Proverò con prickle, ma io ho bisogno assoluto di maneggiare i testi in modo semplice e intuitivo... DEVO riuscire a leggere e scrivere file testo senza intoppi, sia da python che da Blocco note o da qualsiasi banalissimo programma di gestione di file testo. Come se ne esce? Dove sto sbagliando? E se non qui: dove mi consigliate di porre domande di questo tipo?--Alex brollo (disc.) 12:36, 4 ott 2008 (CEST)[rispondi]

Credo che il problema sia blocco note, in realtà... Non codifica in UTF-8, secondo me. Quando io provai per la prima volta il bot, avevo un problema simile, e Qualc1 mi disse di cambiare editor (allora c'era EmEditor libero) e con quello potevo controllare la codifica delle mie pagine. Pur troppo è tutto quello che so, sarebbe bello passasse di qua Qualc1, ma latita da un bel po'. --Aubrey McFato 13:02, 4 ott 2008 (CEST)[rispondi]
Temo che il problema sia più sottile: qualcosa nei gangli di Python. Sto studiando il manuale in aree sconosciute (modulo codecs). Il problema sta nella codifica ascii di default per la scrittura su file txt. Devo capire questa cosa perfettamente! Il modulo codecs è promettente. --Alex brollo (disc.) 19:41, 4 ott 2008 (CEST)[rispondi]

Alebot e Unicode: busillo risolto

Risolto il problema unicode. Fermo restando che il mio PC (la mia "console") ragiona in latin-1, quando riceve un file in lettura da wiki riceve un oggetto unicode oggetto, che va trasformato in una stringa latin-1 con questo codice:

oggetto=oggetto.encode("latin-1")

A questo punto oggetto è una normale stringa e può essere concatenata, confrontata, stampata e salvata in file txt. Prima di scrivere oggetto (o qualsiasi altra cosa letta da file txt locale, o scritta a tastiera) su wiki occorre fare la trasformazione inversa:

oggetto=unicode(oggetto,"latin-1")

Sembra facile, ma ce ne ho messo.... --Alex brollo (disc.) 08:50, 10 ott 2008 (CEST)[rispondi]

Pia illusione

Non avevo risolto affatto. Il primo carattere non previsto da Latin-1 mi ha rigettato nello sconforto.

Al momento - lo scrivo per futura memoria e per evitare mali di testa a chi facesse il mio stesso percorso - ho rilevato che:

  1. se importo un testo mediante copia-e-incolla da wiki in ambiente python, questo testo risulta automaticamente codificato in cp1252 (la mia "codifica di console");
  2. se lo leggo via bot con get(), risulta essere una stringa unicode;
  3. se voglio salvare una stringa unicode in un file, devo codificarla in utf-8;
  4. se voglio trasformare una stringa non unicode in una stringa unicode, devo tener conto di com'è codificata; per non fare una enorme confusione, se la devo memorizzare in un file è meglio trasformarla in utf-8: cp1252 -> unicode -> utf-8.

Riscriverò tutto, in modo da maneggiare solo ed esclusivamente stringhe unicode, e trasformarle solo e unicamente in utf-8 nel caso di salvataggio su file. --Alex brollo (disc.) 08:51, 7 nov 2008 (CET)[rispondi]

Bot che leggono la propria pagina discussione

Ai bottolatori una domanda. E' mai stata battuta la strada di far leggere a un bot i messaggi che gli vengono inviati nella pagina di discussione? Potrebbe essere un interessante sistema per controllare l'azione di un bot "attivo ma dormiente", che però ogni tot tempo dia un'occhiata se pende qualche richiesta... --Alex brollo (disc.) 08:51, 7 nov 2008 (CET)[rispondi]

Qui su Source no. Interessante idea, cmq. Più che la pagina di discussione, forse dovrebbe leggere Wikisource:Richieste ai bot. Ma credo che su Pedia siano molto più scafati rispetto a noi, (e su Botwiki come ti sarai accorti non c'è nessuno ;-)). :Anche la chat IRC di Wikipedia può essere utile (spesso vado là a chiedere qualcosa: #wikipedia-it) o addirittura la chat dei botolatori (#botolatori o qualcosa del genere, c'è nelle pagine pediane). --Aubrey McFato 10:29, 7 nov 2008 (CET)[rispondi]
Si, su Botwiki-bar ho trovato un severo ammonimento a non floodare il bar con discussioni non pertinenti. :-)
Effettivamente anche quelle pertinenti non è che siano seguitissime... ;-)
Vista la pagina, che mi suggerivi, ma come hai intuito, io non indendevo una richiesta al manovratore, ma una richiesta proprio al bot... in una lingua comprensibile al bot, tutta da inventare; ci penseremo se avremo tempo (cioè: mai ;-) ). Comunque, certo, la pagina è quella giusta... i bot quella dovrebbero leggere alla ricerca di messaggi "comprensibili". --Alex brollo (disc.) 23:10, 7 nov 2008 (CET)[rispondi]

Progetto avviato

Dal dire al fare c'è di mezzo python. :-)

Alebot ha cominciato a leggere i messaggi nella sua pagina di discussione, ed è in grado di rispondere con un messaggio di cortesia, se non riconosce la domanda; e di fare qualcosa, se la domanda è appropriata. Risponde nella pagina di discussione di chi ha inviato il messaggio: ricordatevi quindi di firmarlo. Al momento i messaggi "capiti" sono quelli in cui c'è una parola chiave verbale: leggi, o esamina, o controlla (seguiti da uno spazio) e un complemento oggetto del verbo, consistente in un wikilink formalmente corretto a una pagina Autore. Non è molto, ma - come sa chi programma - le cose complicate si costruiscono partendo da quelle semplici.

Ora, non c'è alcun limite al tipo di richieste che nel tempo Alebot potrebbe imparare a riconoscere, nè c'è alcun limite alle azioni che potrebbe fare a seguito di una singola richiesta. Qualcuno di voi vuol fare uno sforzo di fantasia e buttare là un po' di proposte? --Alex brollo (disc.) 18:25, 16 nov 2008 (CET)[rispondi]

Tu sei tutto matto :-D. Questa nuovo progetto mi sembra molto furbo, potrebbe sveltire in maniera significativa le richieste ai bot, e se si decide insieme la pagina da utilizzare e un minimo di comandi la cosa diventa veramente molto interessante. Anche perchè se il buon Alebot venisse gestito assieme agli scipt di Bimbot sull tool serverr potrebbe risolvere le cose dalla sera alla mattina. Fra le cose che mi vengono in mente, aggiornamento della tavbella autori o di altri dati che non necessitano un aggiornamento giornaliero (della serie, si può decidere di aggiornare ogni tot giorni sempre ma anche lasciare la possibilità di un aggiornamento on demand).
Poi potrebbe essere utile per le statistiche dei libri (contare le parole di un libro, o di una categoria). Ovviamente quello si potrebbe fare per tutti i libri, e tutte le categorie, ma sicuramente servirebbero aggiornamenti, e quello potrebbe essere fatto. (ma i bot in quella direzione devono essere sviluppati ancora bene....) Altre idee per ora non ne ho. Questo discorso di ottimizzazione mi sembra interessante, comunque :-)

--Aubrey McFato 23:10, 16 nov 2008 (CET)[rispondi]

Recentemente ho provato un'ebbrezza simile su commons. per ruotare due immagini da me scorrettamente caricate mi è bastato inserire un template {{Rotate|180}} e nel giro di un giorno un bot le ha automaticamente scaricato, ruotato e ricaricate. Questo è un altro spunto interessante. - εΔω 23:29, 16 nov 2008 (CET)[rispondi]
-> Aubrey: la parola corretta per definirmi è "molto pigro", di quella pigrizia dei programmatori mancati, che fa perdere quattro notti per la soddisfazione di risparmiare cinque minuti di lavoro. ;-) Attivati gli script di Alebot sul mio PC, la procedura per attivare la lettura dei messaggi e ciò che ne consegue è piuttosto semplice (da vero pigro): scrivo sulla riga di comando "messaggi()". Il resto lo fa lui. --Alex brollo (disc.) 11:59, 17 nov 2008 (CET)[rispondi]

La soddisfazione di scoprire l'acqua calda.... ;-)

Ho fatto la conoscenza con il bot di ThomasV su en.source... bene, lui ed un altro sono bot interattivi; ossia, sono in grado di ricevere richieste degli utenti ed eseguirle direttamente. Guarda un pò, con un messaggio nella loro pagina di discussione... ovviamente fanno cose fenomenali e notificano molto bene quello che stanno facendo e che hanno fatto; Alebot non ci arriverà mai e nemmeno serve provarci; un paio di messaggi, e il sistema potrebbe essere implementato anche da noi nella sua versione perfezionata, anche se lo vedo un tantinello rischioso; ma la soddisfazione di aver intuito la strada, quella almeno resta! :-) --Alex brollo (disc.) 22:28, 13 dic 2008 (CET)[rispondi]

Bot interattivo: cercasi manovratori

Lo stato dell'arte

Dopo alcuni test, sono pronti alcuni script per il "bot interattivo": uno script python abbastanza semplice, costituito da un ciclo di attesa della lunghezza di n secondi ripetuto per m volte che viene richiamato da un prompt python semplicemente come >>> go(n,m); alla fine dell'attesa di n secondi viene lanciato uno script di lettura di una pagina dove sono eventualmente state scritte delle "richieste"; vengono cercate le richieste non ancora soddisfatte; una a una vengono evase, e alla fine tutte le richieste eseguite sono marcate come fatte in modo da non essere ripetute alla ricerca successiva. Il ciclo viene ripetuto per m volte, poi termina. Una a una sto aggiungendo le procedure della roadmap autori. In linea di massima, scriverò solo routine che intervengano "un caso alla volta": niente azioni di massa, molto pericolose. Inoltre, nonostante la presenza di un bot interattivo possa far immaginare procedure di elaborazione innovative, io per ora non suggerisco alcuna innovazione, ma solo integrazione e automatizzazione, utilizzando la rete di automatismi via template + Bimbot esistente tal quale. Vedi Utente:Alebot e sua pagina di discussione che funge da "pagina delle richieste".

Lo script può correre in qualsiasi PC collegato a Internet, in cui esista un bot python flaggato. Per ora gira sul mio, ma ovviamente gira solo quando il pc è acceso e lo script è stato lanciato; se fosse disponibile anche sui pc di altri bottolatori, la probabilità di trovare un bot interattivo attivo aumenterebbe di parecchio. Lo script occupa pochissime risorse in fase di pausa, e anche in caso di richieste in corso di elaborazione le risorse impegate sono minime; quindi si tratta di lanciarlo e lasciarlo correre come thread autonomo senza pensarci più. Ovviamente mi aspetto che nelle mani di altri utenti ne succedano di tutti i colori, ma sarebbe comunque utile che venisse testato.

Chi vuole fare la prova? --Alex brollo (disc.) 13:59, 27 gen 2009 (CET)[rispondi]

Io ;-). Non so se potrò ion questi giorni, ma dalla prossima settimana sarò più presente (se risolvo problemi di connessione del mio nuovo appartamento estone) ;-) Aubrey McFato 19:06, 27 gen 2009 (CET)[rispondi]
Benissimo. Dimmi quando sei pronto che ti mando gli script. Nel frattempo ci aggiungo un po' di documentazione (il tallone d'Achille" dei programmatori dilettanti pasticcioni ;-) ) --Alex brollo (disc.) 11:11, 28 gen 2009 (CET)[rispondi]

Il codice per il bot interattivo

Ho pubblicato qui: Utente:Alebot/Scripts interattivi gli script python correnti che animano l'uso di Alebot come bot interattivo. Chi ha coraggio, pazienza e vivace senso dell'umorismo (i veri programmatori si rotoleranno dalle risa), è benvenuto a dare un'occhiata e se lo desidera a fare man bassa se trova qualche idea interessante da sviluppare. --Alex brollo (disc.) 08:18, 10 feb 2009 (CET)[rispondi]

Problema Bimbot: meglio prevenire che curare

Bimbot (o altri bot "listatori") scorrono specifiche categorie e agiscono su quelle. Ho scoperto con raccapriccio che i miei test su tl|Autorecitato e tl|testocitato, seminati qui e là, hanno categorizzato pagine aliene che Bimbot ha incluso nelle liste che produce, con risultati abbastanza allarmanti. La pulizia è stata molto faticosa, ho dovuto svuotare varie pagine-sandbox e distruggere parecchi interessanti test. Conclusione: attenti a utilizzare templates, anche per prova o per dimostrazione, che generino categorie pericolose... --Alex brollo (disc.) 11:05, 27 mar 2009 (CET)[rispondi]

Io mi sono accorto da vario tempo che tu metti template ovunque per prova, e categorizzi le pagine sbagliate. Ma sinceramente non pensavo al Bimbot, che fa un casotto con le liste. Ok, adesso lo sappiamo ;-) --Aubrey McFato 14:36, 27 mar 2009 (CET)[rispondi]

category.py

Ho cominciato a rovistare in pywikipedia (al momento Alebot ha usato solo le due funzioni leggi pagina e scrivi pagina). Ho aperto category.py e ho visto la luce. Ma ho fatto immediatamente una modifica (molto semplice): invece che far scrivere l'output su una pagina wiki, con sperpero di byte utili, lo memorizzo in un file locale (come file txt utf-8 o come file pickle). Chi è interessato, mi chieda.

Intravedo la possibilità di costruire uno strumento di intersezione di categorie, molto ma molto più potente di incategory, da utilizzare mediante richiesta a Alebot: se c'è qualche ardimentoso che vuole dissodare con me la questione, avrei piacere di parlarne in modo che non venga fuori il solito "scarafone bello a mamma sua" ;-) --Alex brollo (disc.) 11:43, 4 mag 2009 (CEST)[rispondi]

Sai che io ci sono, ma abbiamo bisogno anche di altre voci, soprattutto per la teoria, io e te ci siamo parlati più di una volta... --Aubrey McFato 13:19, 4 mag 2009 (CEST)[rispondi]
Brevissimo sunto per chi non ha seguito i voli pindarici fra me e Aubrey (parte online e parte offline).
L'intersezione di categorie permette di identificare le voci che appartengono contemporaneamente a più categorie. Esempio: se esiste una categoria generica Categoria:Testi del XIX secolo e un'altra categoria Categoria:Saggi, l'intersezione delle due categorie restituisce i Saggi del XIX secolo, senza bisogno che si crei una specifica categoria: Categoria:Saggi del XIX secolo.
Ora, esiste un meccanismo denominato incategory che permette l'intesezione di categorie, ma ha uno svantaggio colossale: legge le categorie che sono scritte materialmente nel codice delle pagine, e NON legge, invece, le categorie create "al volo" dai templates. Inoltre la sintassi è un pochino complessa (non molto, ma quanto basta a scoraggiare di primo acchito).
Conclusione: se una domanda ad Utente:Alebot con una sintassi ultrasemplice permettesse di ottenere in risposta un elenco di link, corrispondente all'intersezione di categorie, non mi sembrerebbe male, anche se sarebbe adatta solo per ricerche "non immediate" (per ora Alebot lavora solo quando io lo lancio).
Sperimentalmente, tale elenco potrebbe essere stampato sulla pagina discussioni utente dell'utente richiedente, o anche in sandbox; in futuro, è possibile (mi dice jayvdb) che Alebot spedisca la risposta via mail sfruttando peciale:EmailUser. --Alex brollo (disc.) 14:12, 4 mag 2009 (CEST)[rispondi]

Una possibile novità su Alebot (e non solo)

Ipotizziamo che esista una categoria Categoria:Richieste al bot oppure un template: Template:Richieste al bot. Immaginiamo, nel primo caso, che la categoria venga richiamata in una pagina autore con la sintassi: [[Categoria:Richieste al bot|Roadmap ~~~~]] su una pagina Autore, o nel secondo caso con qualcosa di simile a {{Richieste al bot|Roadmap|~~~~}}, che genererebbe una categoria Richieste al bot. Questo meccanismo sarebbe del tutto equivalente alla corrispondente richiesta al bot interattivo Alebot sulla sua pagina di discussione, ma con due strepitosi vantaggi:

  1. sarebbe fatta direttamente sulla pagina per la quale si chiede l'intervento, semplificando la richiesta (non occorrerebbe nè spostarsi in un'altra pagina, nè linkare la pagina su cui si richiede l'intervento, perchè sarebbe implicita);
  2. il "trucco" di passare il contenuto della richiesta nel secondo campo di Categoria (quello usato, in sostanza, per far apparire le categorie in ordine alfabetico), permetterebbe di elencare le pagine in un'unica categoria, anche in presenza di richieste differenziate. Nel caso dell'uso di un template, i parametri opzionali potrebbero permettere di articolare la richiesta molto bene.

Concretamente, il bot, all'avvio della routine:

  1. leggerebbe la categoria Richieste al bot;
  2. una per una, leggerebbe le pagine che appartengono alla categoria, e recupererebbe il testo della chiamata originale alla categoria o il template e lo eseguirebbe;
  3. opzionalmente spedirebbe notifica dell'esecuzione all'utente richiedente con un messaggio in pagina discussione e/o una mail;
  4. finiti i lavori, cancellerebbe la chiamata alla categoria o al template nella pagina dove sono contenuto, facendo quindi sparire la pagina dalla categoria Richieste al bot.

Si potrebbe perfino integrare una o più richieste "di default" in una delle pagine standard da copiaincollare (tipo, il tl|Autore), attivando il meccanismo quasi all'insaputa dell'utente richiedente.

Comments? --Alex brollo (disc.) 08:54, 20 mag 2009 (CEST)[rispondi]

Alex, come al solito, ho bisogno di un esempio pratico per capire meglio. Lagrande (disc.) 07:54, 21 mag 2009 (CEST)[rispondi]
Hai presente il template {{OCR}} che si semina su una pagina bianca e che attiva il bot che lancia l'interpretazione della pagina quando il bot si attiva? Ecco, la stessa cosa... diciamo che compilata una nuova pagina Autore si semina qualcosa come {{Alebot|Roadmap}} e non ci si pensa più; oppure, caricato il djvu File:Opera omnia di Pinco Pallino.djvu su Commons, creata la pagina testuale Opera omnia di Pinco Pallino con la sua Intestazione e il suo Infotesto, e un Sommario non formattato, ci si semina un ipotetico {{Alebot|Roadmap opera}} e ci si ritrova con la pagina Indice Indice:Opera omnia di Pinco Pallino.djvu pronta, tutti gli schemi dei capitoli funzionanti, i sommari formattati sia in pagina Indice che in pagina testuale, gli Infotesto caricati e forse qualche altra cosetta. :-) --Alex brollo (disc.) 08:22, 21 mag 2009 (CEST)[rispondi]
Eccellente... avanti così, :O --Xavier121 09:51, 21 mag 2009 (CEST)[rispondi]
Attivato {{Alebot|Roadmap}} da usare in pagina Autore per l'esecuzione della roadmap e {{Alebot|Apostrofi}} da usare in pagina principale in ns0 oppure in pagina Indice per la conversione apostrofo dattilografico->tipografico nell'intera opera. Il sistema funziona ed è semplice. Le varie funzioni saranno mano a mano registrate nella pagina di Alebot e di Template:Alebot. --Alex brollo (disc.) 01:56, 22 mag 2009 (CEST)[rispondi]
E questo serve solo per l'intera opera? O può essere applicato ad una sola o a più pagine? Lagrande (disc.) 08:09, 22 mag 2009 (CEST)[rispondi]
Bella domanda! In questo momento, agisce solo sulle pagine principali e sulle pagine Indice, dopodichè agisce sull'intera opera. Ma da stasera, agirà anche solo sulla pagina dove è seminato, se si tratta di un capitolo (una sottopagina) o di una Pagina: . Grazie Lagrande del suggerimento! Adesso vedo se nel piccolo spazio dellicona di un pulsante aggiuntivo riesco a simboleggiare la chiamata al template... chi volesse aiutarmi creando un'iconcina mi farebbe un gran piacere! :-) --Alex brollo (disc.) 08:57, 22 mag 2009 (CEST)[rispondi]
Ecco il codice per un eventuale pulsante aggiuntivo che semina la chiamata a Apostrofi:
// Richiamo aggiusta apostrofi
if (mwCustomEditButtons) {
 mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://upload.wikimedia.org/wikipedia/commons/4/40/Apos_dact_typo.PNG",
     "speedTip": "Apostrofi",
     "tagOpen": '{{Alebot|Apostrofi}}',
     "tagClose": '',
     "sampleText": ""};
};

--Alex brollo (disc.) 09:44, 22 mag 2009 (CEST)[rispondi]

Caro, visto che ancora su queste cose mi sento "imbranata zuppa" (come si dice localmente) quando hai un bell'esempio realizzato me lo fai vedere, così copio da lì? Grazie. Lagrande (disc.) 12:35, 22 mag 2009 (CEST)[rispondi]
Non posso... tutta la procedura non lascia nessuna traccia! Conservami un autore senza roadmap o un'opera con gli apostrofi da correggere! Ma se vuoi avere un'idea, scorri la cronologia di Saggio di rime devote e morali e vedrai:
  1. una mia modifica che consiste nell'aggiunta di {{Alebot|Apostrofi}}
  2. una modifica di Alebot successiva che elimina {{Alebot|Apostrofi}}
Se poi vai in un sottocapitolo qualsiasi, es: Saggio di rime devote e morali/Al grato suon de' celestial strumenti, vedrai nella stessa data e ora una modifica di Alebot che ha convertito gli apostrofi da dattilografici a tipografici. Tutto qui. --Alex brollo (disc.) 13:22, 22 mag 2009 (CEST)[rispondi]


Mefistofelico: facciamo 31!

Ma visto che il buon Alebot crea le pagine indice, non può automaticamente inserire anche le pagine discussione con l'infotesto (quando corretamente compilato)? E' poi possibile nella pagina testuale, l'automatica creazione della pagina fonte, appena si transclude qualcosa? :) --Xavier121 11:36, 22 mag 2009 (CEST)[rispondi]

Per ora Alebot crea delle pagine Indice assai virtuali, nella mia testa :-).
Però, lo sai che c'hai ragione? Se verrà seguita in modo fedele una ipotetica "roadmap opera" in quattro passi:
    1. creazione e caricamento del file djvu
    2. creazione della pagina testuale principale con Intestazione e sommario Sommario (gioco di parole per suggerire che basta un sommario non formattato ;-) );
    3. creazione della pagina di discussione di detta pagina, contenente Infotesto
    4. aggiunta, in ciascuna voce Sommario sulla pagina del punto 2, dei numeri di pagina di inizio/fine della voce del sommario nel file djvu

allora quello che proponi, sì, è possibile, o perlomeno "gira" nel mio modello mentale di quello che voglio realizzare. I dati necessari ci sono tutti. Manca solo un "ritocco" nel caso dei capitoli che iniziano/finiscono a mezza pagina. --Alex brollo (disc.) 13:06, 22 mag 2009 (CEST)[rispondi]

Ho cominciato a lavorarci, ci vorrà un po' di tempo... le variabili sono parecchie e il codice è lungo da scrivere. --Alex brollo (disc.) 18:52, 23 mag 2009 (CEST)[rispondi]
Da 4 passi siamo arrivati a 2 passi soli:
  1. creazione e caricamento del file djvu
  2. compilazione di Alebot|Roadmap opera

Non è malaccio... :-) --Alex brollo (disc.) 16:15, 26 mag 2009 (CEST)[rispondi]

Piccola modifica di {{Alebot|Apostrofi}}

Come da suggerimento di Lagrande, ho effettuato una piccola modifica del codice di {{Alebot|Apostrofi}}. Adesso il bot "capisce" se la pagina in cui si trova il template è una pagina Indice: o una pagina principale Main: (ns0), e un questo caso agisce sulla pagina ma anche su tutte le eventuali sottopagine; se invece la pagina è una sottopagina (un capitolo) in Main: - ns0 oppure se è una pagina Pagina: agisce solo su quella. Se la pagina non fa parte dei tre ns ns0, nsIndice, nsPagina il bot incrocia le braccia, e l'unica cosa che fa è eliminare il tl di chiamata. Per i veramente pigri il pulsante aggiuntivo che ho proposto sopra funziona molto bene: un click ed è fatta (meno di così ... ci sarebbe solo la chiamata automatica di default, magari "agganciata" al passaggio SAL 75% -> SAL 100%, prima sarebbe inutile). --Alex brollo (disc.) 18:50, 23 mag 2009 (CEST)[rispondi]

Interattività

Ho semplificato all'osso (ma migliorato di gran lunga) la funzione "interattività". Sotto Progetto:Bot/Elenco dei bot/aubrey.py trovate un programma immediatamente attivo se ne copiate il codice (togliendo i tag pre ovvio) in un file .py qualsiasi (consiglio: aubrey.py) e lo salvate nella directory dove stanno gli script pywikipedia.

Lo script fa una cosa estremamente semplice ma carina. Esamina wikisource per vedere se c'è qualcosa da fare; se trova un elenco di lavori da fare, prende in carico il primo lavoro della lista, lo esegue, e marca la richiesta come fatta; e termina.

Nessun parametro: si lancia da una finestra DOS nella stessa directory con:

python aubrey.py

oppure dal prompt python con:

import aubrey

.

Il giochino è organizzato nel seguente modo (oggi, chissà come cambierà in futuro!). Il sistema si fonda su un template e due categorie.

  • Categoria:Bot calls (nascosta), contiene l'elenco delle pagine in cui ci sono richieste attive; viene consultata dal bot appena viene avviato;
  • Categoria:Bot jobs done (nascosta): contiene l'elenco delle pagine in cui ci sono richieste inattive (ossia: marcate come "eseguite")
  • Template:ToAlebot: viene usato per registrare una richiesta, scrivendo uno o più parametri. Ad esempio, l'unica richiesta, ad oggi, accettata è la seguente:
{{ToAlebot|table2wiki|done=yes}}

che significa: "esegui la trasformazione di tutte le tabelle contenute in questa pagina da codice HTML a codice wiki".

Il risultato (reale: questa è una richiesta attiva, verrà "eseguita" al primo lancio) è il seguente:. Passate con il mouse sopra la faccina, e vedrete la richiesta pendente. In inglese, mi spiace, è un bot che lavora dovunque. :-)

Nell'attimo in cui viene depositato in forma attiva, la pagina dove è contenuto compare in Categoria:Bot calls. Una volta che la richiesta sarà stata eseguita, al testo del template sarà semplicemente aggiunto "done=yes" e le cose si presenteranno così:Seems that the job has been done by Alebot:table2wiki; cambia faccina, cambia il messaggio visibile passandoci sopra il mouse, e la pagina sarà adesso elencata nella categoria Categoria:Bot jobs done. Qualcosa va storto, e bisogna riattivare la richiesta? Basta cancellare il "done=yes". :-)

Al momento, ho impostato un sacco di limitazioni; il lancio del bot esegue una richiesta alla volta, la prima della lista, e prevede che sulla stessa pagina vi sia una sola richiesta. Inoltre, se l'istruzione è incomprensibile, il bot considera ugualmente fatto il lavoro. Con il tempo, e soprattutto: in base ai suggerimenti degli altri eventuali utilizzatori, le cose cambieranno. --Alex brollo (disc.) 09:47, 3 set 2009 (CEST)[rispondi]

Vedo che Aubot ci ha provato, e pure con successo. :-P
Vado a modificare lo script...adesso nel tl verrano accettati due parametri nominali opzionali: user=nome dell'utente richiedente e page=pagina su cui si richiede di agire, che al momento non fanno nulla ma qualcosa faranno. Raccomando di caricare molto spesso la versione corrente di aubrey.py! Siamo alla 0.1. --Alex brollo (disc.) 18:56, 3 set 2009 (CEST)[rispondi]
Lo script mi piace moltissimo, di una facilità disarmante. Scusa se non ti ho detto subito che l'ho provato.
Sta sicuro che ci tengo dietro ;-) --Aubrey McFato 19:28, 3 set 2009 (CEST)[rispondi]

Allora si parte

Lo stato dell'arte e la filosofia della cosa è: lo script fa tutto lui. I due nuovi parametri nominali hanno questo scopo:

  1. user = : serve al bot per sapere chi ha chiesto cosa. Nome "secco", senza Utente: e senza quadre. Sarà utilizzato, con calma, per spedire notifiche, inviare mail e quant'altro. Potrei ricavarlo comunque ma non ho voglia di trabajar, perchè il risultato - anche rovistando nella cronologia - potrebbe essere sbagliato.
  2. page = : servirà al bot per capire che l'azione è richiesta apponendo un tl|ToAlebot nella pagina xxx, ma va eseguita sulla pagina yyy. Quindi deve agire su yyy, ma poi anche su xxx per disattivare la richiesta. In un primo tempo yyy sarà il nome di una pagina, poi diventerà opzionalmente una lista e poi magari una categoria o un intero ns o tutti i progetti della famiglia wikisource in tutto il mondo... Chi pol dir. :-)--Alex brollo (disc.) 19:53, 3 set 2009 (CEST)[rispondi]