Wikipedia:Bot/Sostituzioni
I bot operano su grosse quantità di voci e, normalmente, in modo non visibile nella pagina Ultime modifiche. Occorre pertanto che le sostituzioni standard che possono effettuare siano assolutamente conosciute e condivise da tutti i wikipediani.
Ovviamente i bot effettuano anche sostituzioni o modifiche di parole specifiche, che vengono decise di volta in volta, in completa autonomia, da ogni gestore di bot. Viceversa le sostituzioni automatiche o standard (che vengono cioè sempre effettuate dal bot), devono essere comprese tra quelle elencate in questa pagina.
Qualora si volesse approntare un lavoro che coinvolge tutte le voci presenti su Wikipedia, se si dispone di un software in grado di usare i dump in formato XML prelevabili da http://download.wikimedia.org (come Pywikibot), sarà possibile svolgere il compito in maniera più veloce e mirata, facendo risparmiare lavoro ai server.
- Attenzione
- Le sostituzioni automatiche al di fuori del namespace principale sono generalmente non approvate, in quanto possono provocare effetti indesiderati.
- Il template AutoSost si usa per avere un'occhiata rapida di quali sostituzioni sono da fare. La sintassi è
{{AutoSost|fattosul= <data dell'ultimo dump fatto>|firma= --~~~~}}
.<data dell'ultimo dump fatto>
va sostituito con la data dell'ultimo dump su cui si è eseguita la sostituzione. Va utilizzata la data del dump pages-meta-current.xml, e non, per esempio, quello pages-meta-articles.xml. Il parametro va scritto col meno (-) davanti se la sostituzione è ancora in corso; se essa non è mai stata eseguita, il parametro da inserire è 0. Si veda anche Template:AutoSost.- L'ultimo dump pages-meta-current.xml che risulta è il 20190101. Aggiorna Lista degli ultimi dump disponibili
Sostituzioni periodiche
[modifica wikitesto]Problema | Descrizione | Testo da ottenere | Codice |
---|---|---|---|
Rimozione dell'accento | Alcune parole che sono scritte con l'accento non dovrebbero averlo, in teoria. | qui, qua, sto... | |
Consuetudini | I titoli di sezione "Vedi anche", "Articoli correlati" e simili, "Link esterni" e simili. | == Pagine correlate == == Collegamenti esterni == |
|
Codice wiki | *Sistemazione delle entity html mancanti del segno finale ";" (ad esempio "  ") e sostituzione di quelle che rappresentano caratteri accentati (à, è...). Non vanno sostituiti: , >, <. | ||
Apostrofi e virgolette | Apici, apostrofi, virgolette alte devono essere sempre del tipo semplice. | ' " |
inversione delle accentate finali
[modifica wikitesto]- Modalità di esecuzione: automatica
- Descrizione sintetica:
- Discussione relativa: (Elenco)
- Comando: Regexp Attenzione: solo il primo schema è pronto per l'esecuzione totalmente automatica.
- Ripetere ogni: mese
- ultima esecuzione di: Non fatto La sostituzione è in corso su un dump non aggiornato (20100201) --Fale (msg) 11:06, 9 feb 2010 (CET)
- Commenti
Occhio che anche il primo schema per la correzione degli accenti deve essere migliorato. Ad esempio io quando correggo gli accenti evito di principio tutte le citazioni (che potrebbero avere accenti obsoleti), i nomi delle immagini (che a volte contengono errori di battitura, ma che se vengono corretti l'immagine smette di funzionare), possibilmente le note (che possono contenere titoli di opere in italiano arcaico), gli interlink/interwiki in altre lingue e gli url! Occhio! Inoltre ci sono in giro alcune subdole eccezioni: Piergiorgio Giacchè, Perche, Bensi (cognome) e mi sembra che ci fosse anche qualcos'altro... Morale sicuramente il blocco di regex in quella pagina va corredato delle dovute exceptions. -- Basilicofresco (msg) 08:23, 10 feb 2010 (CET)
Va tolto anche Macramé, si veda Discussioni_progetto:Scout#Macram.C3.A9_2004. -- Basilicofresco (msg) 08:41, 10 feb 2010 (CET)
Titolo della sezione "Note" errato
[modifica wikitesto]- Modalità di esecuzione: manuale (bot-assisted)
- Descrizione sintetica: Titolo errato -> Note
- Discussione relativa: (Wikipedia:Bar/Discussioni/Note e riferimenti)
- Comandi:
replace.py -xml:itwiki-20190101-pages-meta-current.xml -regex "(?<=\n) *=+ *[a-zA-Z _àèéìòù-]* *=+ *((\s*\<references */\>)|(\s*\{\{references *\| *[1-9] *\}\}))" "==Note==\1" -excepttext:"== *Note *==" -namespace:0 -excepttext:"Giocatori acquistati durante la stagione" -summary:"Riferimenti->Note come da [[Wikipedia:Bar/Discussioni/Note e riferimenti]]"
- Ripetere ogni: 3 mesi
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20090904): --Aushulz (msg) 12:44, 12 nov 2009 (CET)
Con questo comando il bot cerca le pagine in cui le note non sono precedute dal titolo "Note". Spesso la sostituzione "Titolo errato"->"Note" va svolta manualmente (ci possono essere ad esempio note mescolate con la bibliografia, sezione delle note posizionata in posti errati, più sezioni delle note, eccetera...), per cui bisogna agire in modalità manuale per vedere se nella voce ci sono altri problemi, e quindi fare la modifica. --Aushulz (msg) 12:44, 12 nov 2009 (CET)
Template "Reflist" deprecato
[modifica wikitesto]- Modalità di esecuzione: automatica
- Descrizione sintetica: Sostituisce il template "Reflist" con <references/>. Il template "Reflist" viene utilizzato dalla Wikipedia inglese (per cui spesso viene introdotto in seguito ad una traduzione da en.wikipedia), mentre nella Wikipedia italiana non è altro che un <references/>. Questa sostituzione, sostituendo il template deprecato, permette ad altri comandi svolti dai bot di svolgersi più efficacemente.
- Discussione relativa:
- Comando:
replace.py -regex "{{ *[Rr]eflist *\|* *}}" "<references/>" "{{ *[Rr]eflist *\| *([0-9]+) *}}" "<references/>" "{{ *[Rr]eflist *\| *colwidth=[0-9]+em *}}" "<references/>" -ref:"template:Reflist" -namespace:0 -summary:"Bot: reflist deprecato"
- Ripetere ogni: 2 mesi
- ultima esecuzione di: .avgas 18:34, 28 nov 2017 (CET)
- Commenti
Nessun problema in automatico. -- Basilicofresco (msg) 07:54, 10 feb 2010 (CET)
- Visto che è un redirect... è ancora necessaria la sostituzione? -- Basilicofresco (msg) 19:12, 5 mag 2010 (CEST)
- Io non lo so, se nessuno ti risponde chiedi al BarTemplate--Pierpao.lo (listening) 19:19, 5 mag 2010 (CEST)
- Non è più un redirect (anche References è obsoleto da un pezzo), è un richiamo a un semplice <references/>. Basta substarlo --Bultro (m) 01:27, 17 mag 2024 (CEST)
- Io non lo so, se nessuno ti risponde chiedi al BarTemplate--Pierpao.lo (listening) 19:19, 5 mag 2010 (CEST)
Rimozione di riferimenti
[modifica wikitesto]- Modalità di esecuzione: manuale (bot-assisted)
- Descrizione sintetica: Riferimenti -> Note e Bibliografie (scegliere di volta in volta se la sostituzione corretta è uno o l'altro)
- Discussione relativa: (discussione)
- Comandi:
replace.py -regex "(={2,4} ?)[Rr]iferimenti( ?={2,4})" "\1Bibliografia\2" -namespace:0 -summary:"Riferimenti->Bibliografia come da [[Wikipedia:Bot/Sostituzioni/Rimozione di riferimenti]]" -xml:itwiki-20190101-pages-meta-current.xml replace.py -regex "(={2,4} ?)[Rr]iferimenti( ?={2,4})" "\1Note\2" -namespace:0 -summary:"Riferimenti in Note come da [[Wikipedia:Bot/Sostituzioni/Rimozione di riferimenti]]" -xml:itwiki-20190101-pages-meta-current.xml
- Ripetere ogni: 2 mesi
- ultima esecuzione di: Non fatto La sostituzione è in corso su un dump non aggiornato (2007) --Alleborgo 08:55, 29 set 2007 (CEST)
collegamenti esterni interni
[modifica wikitesto]- Modalità di esecuzione: manuale (bot-assisted)
- Descrizione sintetica: Negli articoli di Wikipedia, ci sono dei link che puntano ad articoli di Wikipedia stessa. Sarebbe meglio correggerli con le doppie parentesi quadre.
- Discussione relativa: (discussione)
- Comando:
replace.py -fix:syntax -namespace:0 -xml:itwiki-20190101-pages-meta-current.xml
- Ripetere ogni: mese
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20100201): --Fale (msg) 12:55, 9 feb 2010 (CET)
- Spesso ci si trova in situazioni 'spiacevoli' perchè vengono fuori delle sintassi assurde :\ Fale (msg) 12:55, 9 feb 2010 (CET)
- Sto già correggendo periodicamente questo problema con la sostituzione sintassi link. -- Basilicofresco (msg) 19:13, 6 mag 2010 (CEST)
Virgolette, accenti, apostrofi
[modifica wikitesto]- Modalità di esecuzione: (semi-)semi-automatica
- Descrizione sintetica: ci sono alcuni caratteri (
` | “ | ” | ‘ | ’
) spesso utilizzati a sproposito da chi scrive le proprie pagine con Word (o, più raramente, da chi è abituato a LaTeX) - Discussione relativa: (discussione)
- Comando:
python replace.py -regex "che\`" "ché" "\`([Ss])" "'\\1" "a\`" "à" "e\`" "è" "i\`" "ì" "o\`" "ò" "u\`" "ù" "([LlDd])\`" "\\1'" "\`\`([^ ])''" '"\1"' "\`\`" '"' -xml:itwiki-20190101-pages-meta-current.xml -exclude:excludelog.txt -namespace:0
- (Per ora queste regex risolvono solo il problema del carattere "`", e richiedono comunque di fare a mano svariati casi sfortunati. Se qualcuno sapesse come condensare in una sola sostituzione le varie vocali - cosa che si può fare con Sed ma forse non con una sola regex - me lo faccia sapere)
- Ripetere ogni: volta che esce un nuovo dump
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 2007): --Toobaz rispondi il 12:14, 4 dic 2007 (CET)
- Commenti
Nota: l'accento non va sostituito nelle pagine in cui è presente il template template:Familytree, in quanto il simbolo "`" viene utilizzato all'interno del comando (vedi Discussioni template:Familytree). --Aushulz (msg) 19:10, 4 apr 2009 (CEST)
Si, c'è da considerare ad esempio che moltissime occorrenze in realtà si tratta di virgolette che racchiudono una frase e non di un accento. I casi banali li sto già correggendo io con FrescoBot... quindi qui rimangono giusto quelli da valutare con più attenzione. -- Basilicofresco (msg) 09:07, 10 feb 2010 (CET)
da Kmq a km²
[modifica wikitesto]- Modalità di esecuzione: automatica
- Descrizione sintetica: [Kk]m[q2] -> km²
- Discussione relativa: (discussione)
- Comando:
replace.py -namespace:0 -xml:itwiki-20190101-pages-meta-current.xml -regex "\b[Kk]m[q2]" "km²" -summary:"Bot: -km[q2] +km²"
- Ripetere ogni: mese?
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20100201): --Fale (msg) 12:15, 9 feb 2010 (CET)
- Commenti
- Questa regex mi sembra funzionare molto bene così com'è. Sarebbe solo da mettere in un file di regex. Fale (msg) 12:40, 9 feb 2010 (CET)
- Beh insomma, quasi... Cmq queste regex non andrebbero eseguite da riga di comando, ma inserite in un file in modo da poterle accompagnare anche con alcune esclusioni classiche (almeno url, e nomi immagini). Esempi ipotetici [http://www.dominio.it/pagina(kmq).php url], [[Image:tralla(kmq)llero.png]]. -- Basilicofresco (msg) 10:11, 10 feb 2010 (CET)
- Quella non la avevo proprio notata :\. Effettivamente genera delle eccezioni che ho saltato (url etc) Fale (msg) 12:31, 10 feb 2010 (CET)
- Beh insomma, quasi... Cmq queste regex non andrebbero eseguite da riga di comando, ma inserite in un file in modo da poterle accompagnare anche con alcune esclusioni classiche (almeno url, e nomi immagini). Esempi ipotetici [http://www.dominio.it/pagina(kmq).php url], [[Image:tralla(kmq)llero.png]]. -- Basilicofresco (msg) 10:11, 10 feb 2010 (CET)
da Km a km
[modifica wikitesto]- Modalità di esecuzione: semiautomatica
- Descrizione sintetica: Km -> km - Km. -> km - km. -> km
- Discussione relativa: come da standard imposti dal Sistema internazionale di unità di misura
- Comando:
replace.py -xml:itwiki-20190101-pages-meta-current.xml -regex "([0-9]) Km" "\1 km" "([0-9]) [Kk]m\.( [a-z|'])" "\1 km\2" -namespace:0 -summary:"Sostituisco Km con km, in accordo con le convenzioni del [[Sistema internazionale di unità di misura]]"
- Ripetere ogni: nuovo dump
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20100902): --Rollopack (msg) 08:58, 10 set 2010 (CEST)
- Commenti
- La regex funziona correttamente. Bisogna vedere come gestire i kmh che forse andrebbero trasformati in km/h Fale (msg) 12:53, 9 feb 2010 (CET)
- Queste regex non andrebbero eseguite da riga di comando, ma inserite in un file in modo da poterle accompagnare con alcune esclusioni classiche (almeno url, e nomi immagini). Esempio ipotetico: [http://www.dominio.it/644 Kme Group] Basilicofresco (msg) 10:11, 10 feb 2010 (CET)
- Non ho trovato nessuna eccezione, ma nulla vieta che ce ne possano essere. --Aushulz (msg) 01:16, 7 mag 2010 (CEST)
- Queste regex non andrebbero eseguite da riga di comando, ma inserite in un file in modo da poterle accompagnare con alcune esclusioni classiche (almeno url, e nomi immagini). Esempio ipotetico: [http://www.dominio.it/644 Kme Group] Basilicofresco (msg) 10:11, 10 feb 2010 (CET)
da Kg a kg
[modifica wikitesto]- Modalità di esecuzione: semiautomatica
- Descrizione sintetica: Kg -> kg
- Discussione relativa: come da standard imposti dal Sistema internazionale di unità di misura
- Comando:
replace.py -xml:itwiki-20190101-pages-meta-current.xml -regex "([0-9]) Kg" "\1 kg" -namespace:0 -summary:"Sostituisco Kg con kg, in accordo con le convenzioni del [[Sistema internazionale di unità di misura]]"
- Ripetere ogni: nuovo dump
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20100902): --Rollopack (msg) 09:35, 10 set 2010 (CEST)
- Commenti
- Ho trovato solo un'eccezione, una voce di scacchi. Per sicurezza comunque è bene controllare ogni modifica svolta dal bot. --Aushulz (msg) 01:58, 3 mag 2010 (CEST)
da ...°C (senza spazio) a ... °C (con lo spazio)
[modifica wikitesto]- Modalità di esecuzione: semiautomatica
- Descrizione sintetica: "°C" -> " °C"
- Discussione relativa: Discussioni_progetto:Fisica#Convenzioni_d_nomenclatura_wikipediana_per_.C2.B0C. Come da standard imposti dal Sistema internazionale di unità di misura
- Comando:
replace.py -xml:itwiki-20190101-pages-meta-current.xml -regex "([0-9])°C(?![A-Z|a-z])" "\1 °C" -excepttext:"[Ss]tudio 4[°º][Cc]" -namespace:0 -summary:"Aggiungo lo spazio prima del simbolo °C, in accordo con le convenzioni per i sistemi di misura"
- Ripetere ogni: nuovo dump
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20100408): --Aushulz (msg) 20:36, 7 mag 2010 (CEST)
- Commenti
Innanzitutto alcune eccezioni:
"Taipei 21°C", "[Ss]tudio 4[°º][Cc]", "Jigoku 108°C no", "[Ll]ucent 4[°º][Cc]".
Inoltre non ho capito il \b nel testo sostituito... non ultimo è ovvio che non si può fare alla cieca senza alcuna esclusione (ad esempio codice, indirizzi web, ecc). -- Basilicofresco (msg) 12:07, 8 feb 2010 (CET)
- Infatti il "/b" non ci andava, l'ho tolto. Bisogna stare attenti anche agli errori del tipo "8°Corso", che va cambiato in "8° Corso". --Aushulz (msg) 01:55, 7 mag 2010 (CEST)
- Ho modificato la sintassi. Adesso ci sono molte eccezioni in meno (6 pagine in tutto). --Aushulz (msg) 20:36, 7 mag 2010 (CEST)
Maiuscolo decenni
[modifica wikitesto]- Modalità di esecuzione:
automaticasospesa, vedi sotto - Descrizione sintetica:
- Discussione relativa: Aiuto:Manuale di stile
- Comando:
replace.py -xml:itwiki-20190101-pages-meta-current.xml -fix:decadi900 -namespace:0
È necessario aggiungere nel proprio user-fixes.py il seguente codice:
'decadi900': {
'regex': True,
'recursive': False,
'msg': {
'it':u"Bot: decadi secondo il [[Aiuto:Manuale di stile#Decenni|manuale di stile]]"
},
'replacements': [
#raro caso della maiuscola
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([nN]ovanta|'90)\]\]", ur"[[anni 1990|\1nni novanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([oO]ttanta|'80)\]\]", ur"[[anni 1980|\1nni ottanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([sS]ettanta|'70)\]\]", ur"[[anni 1970|\1nni settanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([sS]essanta|'60)\]\]", ur"[[anni 1960|\1nni sessanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([cC]inquanta|'50)\]\]", ur"[[anni 1950|\1nni cinquanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([qQ]uaranta|'40)\]\]", ur"[[anni 1940|\1nni quaranta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([tT]renta|'30)\]\]", ur"[[anni 1930|\1nni trenta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([vV]enti|'20)\]\]", ur"[[anni 1920|\1nni venti]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([dD]ieci|'10)\]\]", ur"[[anni 1910|\1nni dieci]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([nN]ovanta|'90)\|(a|A)nni[ _]?([nN]ovanta|'90|1990)\]\]", ur"[[anni 1990|\3nni novanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([oO]ttanta|'80)\|(a|A)nni[ _]?([oO]ttanta|'80|1980)\]\]", ur"[[anni 1980|\3nni ottanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([sS]ettanta|'70)\|(a|A)nni[ _]?([sS]ettanta|'70|1970)\]\]", ur"[[anni 1970|\3nni settanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([sS]essanta|'60)\|(a|A)nni[ _]?([sS]essanta|'60|1960)\]\]", ur"[[anni 1960|\3nni sessanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([cC]inquanta|'50)\|(a|A)nni[ _]?([cC]inquanta|'50|1950)\]\]", ur"[[anni 1950|\3nni cinquanta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([qQ]uaranta|'40)\|(a|A)nni[ _]?([qQ]uaranta|'40|1940)\]\]", ur"[[anni 1940|\3nni quaranta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([tT]renta|'30)\|(a|A)nni[ _]?([tT]renta|'30|1930)\]\]", ur"[[anni 1930|\3nni trenta]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([vV]enti|'20)\|(a|A)nni[ _]?([vV]enti|'20|1920)\]\]", ur"[[anni 1920|\3nni venti]]"),
(u"(?<![\]a-z] )\[\[(a|A)nni[ _]([dD]ieci|'10)\|(a|A)nni[ _]?([dD]ieci|'10|1910)\]\]", ur"[[anni 1910|\3nni dieci]]"),
# Wilikink normali o con piping lungo
(u"\[\[(a|A)nni[ _]([nN]ovanta|'90|1990(?=\|))(\|(a|A)nni[ _]?([nN]ovanta|'?90|1990)|)\]\]", ur"[[\1nni 1990|anni novanta]]"),
(u"\[\[(a|A)nni[ _]([oO]ttanta|'80|1980(?=\|))(\|(a|A)nni[ _]?([oO]ttanta|'?80|1980)|)\]\]", ur"[[\1nni 1980|anni ottanta]]"),
(u"\[\[(a|A)nni[ _]([sS]ettanta|'70|1970(?=\|))(\|(a|A)nni[ _]?([sS]ettanta|'?70|1970)|)\]\]", ur"[[\1nni 1970|anni settanta]]"),
(u"\[\[(a|A)nni[ _]([sS]essanta|'60|1960(?=\|))(\|(a|A)nni[ _]?([sS]essanta|'?60|1960)|)\]\]", ur"[[\1nni 1960|anni sessanta]]"),
(u"\[\[(a|A)nni[ _]([cC]inquanta|'50|1950(?=\|))(\|(a|A)nni[ _]?([cC]inquanta|'?50|1950)|)\]\]", ur"[[\1nni 1950|anni cinquanta]]"),
(u"\[\[(a|A)nni[ _]([qQ]uaranta|'40|1940(?=\|))(\|(a|A)nni[ _]?([qQ]uaranta|''40|1940)|)\]\]", ur"[[\1nni 1940|anni quaranta]]"),
(u"\[\[(a|A)nni[ _]([tT]renta|'30|1930(?=\|))(\|(a|A)nni[ _]?([tT]renta|'?30|1930)|)\]\]", ur"[[\1nni 1930|anni trenta]]"),
(u"\[\[(a|A)nni[ _]([vV]enti|'20|1920(?=\|))(\|(a|A)nni[ _]?([vV]enti|'?20|1920)|)\]\]", ur"[[\1nni 1920|anni venti]]"),
(u"\[\[(a|A)nni[ _]([dD]ieci|'10|1910(?=\|))(\|(a|A)nni[ _]?([dD]ieci|'?10|1910)|)\]\]", ur"[[\1nni 1910|anni dieci]]"),
# Wilikink con piping corto
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([nN]ovanta|'90|1990)\|([nN]ovanta|'?90)\]\]", ur"[[\2nni 1990|\1novanta]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([oO]ttanta|'80|1980)\|([oO]ttanta|'?80)\]\]", ur"[[\2nni 1980|\1ottanta]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([sS]ettanta|'70|1970)\|([sS]ettanta|'?70)\]\]", ur"[[\2nni 1970|\1settanta]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([sS]essanta|'60|1960)\|([sS]essanta|'?60)\]\]", ur"[[\2nni 1960|\1sessanta]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([cC]inquanta|'50|1950)\|([cC]inquanta|'?50)\]\]", ur"[[\2nni 1950|\1cinquanta]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([qQ]uaranta|'40|1940)\|([qQ]uaranta|'?40)\]\]", ur"[[\2nni 1940|\1quaranta]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([tT]renta|'30|1930)\|([tT]renta|'?30)\]\]", ur"[[\2nni 1930|\1trenta]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([vV]enti|'20|1920)\|([vV]enti|'?20)\]\]", ur"[[\2nni 1920|\1venti]]"),
(u"([aA]nni |)'?\[\[(a|A)nni[ _]([dD]ieci|'10|1910)\|([dD]ieci|'?10)\]\]", ur"[[\2nni 1910|\1dieci]]"),
],
}
},
- Ripetere ogni:
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20100201): Basilicofresco (msg) 00:11, 11 feb 2010 (CET)
- Commenti
È ancora troppo semplicistico il codice. Ci sono tantissimi altri casi analoghi che non vengono considerati. Preparo in questi giorni qualcosa di più omnicomprensivo. Nel frattempo aspettate. -- Basilicofresco (msg) 12:07, 8 feb 2010 (CET)
- Ora dovrebbe andar bene. -- Basilicofresco (msg) 00:11, 11 feb 2010 (CET)
- Vedo che sono state sollevate in Discussioni aiuto:Manuale di stile#Decenni alcune perplessità. Per il momento sospenderei. -- Basilicofresco (msg) 00:43, 20 feb 2010 (CET)
Template deprecati commons e commonscat
[modifica wikitesto]- Modalità di esecuzione: automatica
- Descrizione sintetica: Alcuni template sono deprecati ma non da cancellare, in quanto, essendo comunemente utilizzati nelle altre wikipedie al posto del template:interprogetto, possono essere utilizzati da utenti e bot non italiani. È comunque necessario effettuare delle operazioni periodiche di sostituzione, che possono essere attuate senza problemi nei namespace 0 (principale) e 14 (categoria). Questi template sono: template:commons e template:commonscat. Siccome i template possono essere scritti in 2 forme (con o senza parametro), esistono 2 comandi per ciascuno, per un totale di 4 comandi (8 se si effettuano le modifiche anche nel namespace:categoria, per il quale basta modificare "-namespace:0" in "-namespace:14").
- Discussione relativa: Wikipedia:Pagine da cancellare/Template:Commonscat/3
- Comandi:
replace.py -namespace:0 -ref:"template:commons" -regex "{{[Cc]ommons\|" "{{interprogetto|commons=" -summary:"Sostituisco [[template:commons]] (deprecato) con [[template:interprogetto]]"
replace.py -namespace:0 -ref:"template:commons" -regex "{{[Cc]ommons}}" "{{interprogetto|commons=:{{subst:PAGENAME}}}}" -summary:"Sostituisco [[template:commons]] (deprecato) con [[template:interprogetto]]"
replace.py -namespace:0 -ref:"template:commonscat" -regex "{{[Cc]ommonscat\|" "{{interprogetto|commons=Category:" -summary:"Sostituisco [[template:commonscat]] (deprecato) con [[template:interprogetto]]"
replace.py -namespace:0 -ref:"template:commonscat" -regex "{{[Cc]ommonscat}}" "{{interprogetto|commons=Category:{{subst:PAGENAME}}}}" -summary:"Sostituisco [[template:commonscat]] (deprecato) con [[template:interprogetto]]"
- Ripetere ogni:
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20110313): --Aushulz (msg) 15:14, 29 mar 2011 (CEST)
Piping inutile
[modifica wikitesto]- Modalità di esecuzione: automatica
- Descrizione sintetica: Spesso si trovano wikilink scritti [[così|così]] invece di [[così]]. Ridondanza inutile da sostituire.
- Discussione relativa:
- Comando:
replace.py -regex "[[(\w)\|(\1)]]" "[[\1]]" -xml:itwiki-20190101-pages-meta-current.xml -namespace:0 -summary:"Bot: tolgo piping inutile"
- Ripetere ogni: 2 mesi
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20100201): --Fale (msg) 22:16, 7 feb 2010 (CET)
- Commenti
Considerate che circa una volta al mese faccio passare FrescoBot con la correzione "piping superfluo nei wikilink" che è supertestato e in grado di individuare anche tutte le possibili varianti (con o senza spazi e con maiuscole diverse fra loro). -- Basilicofresco (msg) 12:07, 8 feb 2010 (CET)
- Si potrebbe valutare di sostituire questo codice con quello del tuo bot. Cosa ne pensi? Fale (msg) 08:07, 10 feb 2010 (CET)
Template lingue e indicazione della lingua italiana
[modifica wikitesto]- Modalità di esecuzione: semiautomatica
- Descrizione sintetica: Inserisce il template:lingue quando sono presenti più lingue. Ad esempio {{en}}{{fr}}{{it}} diventa {{lingue|en|fr|it}}. Allo stesso tempo toglie l'indicazione della lingua italiana da collegamenti esterni, elenchi puntati, e all'interno dei template per la citazione delle fonti e simili.
- Discussione relativa: Discussioni template:It e Discussioni Wikipedia:Bot#Template:It
- Comando:
replace.py -regex "( *)\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\}( *)" "\1{{lingue|\2|\4|\6|\8|\10|\12}}\13" "( *)\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\}( *)" "\1{{lingue|\2|\4|\6|\8|\10}}\11" "( *)\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\}( *)" "\1{{lingue|\2|\4|\6|\8}}\9" "( *)\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\}( *)" "\1{{lingue|\2|\4|\6}}\7" "( *)\{\{([A-Za-z][a-z][a-z]?)\}\} *.?( *).? *\{\{([A-Za-z][a-z][a-z]?)\}\}( *)" "\1{{lingue|\2|\4}}\5" "( *){{[Ii]t}} *-? *" "\1" "\| *lingua *= *[Ii]taliano\s*(\n*|)" "\1" "\| *lingua *= *{{[Ii]t}}\s*(\n*|)" "\1" "\| *lingua *= *[Ii]t\s*(\n*|)" "\1" -xml:itwiki-20110313-pages-meta-current.xml -namespace:0 -summary:"Bot: Vedi [[Template:Lingue]] e [[Template:it]]" -excepttext:"{{[Pp]df}}" -excepttext:"{{[Dd]oc}}" -excepttext:"{{[Ss]p}}" -excepttext:"{{[Cc]n}}" -excepttext:"{{[Gg]ol}}" -excepttext:"{{[Qq]uote" -excepttext:"{{[Cc]ittà" -excepttext:"{{[Ss]tato" -excepttext:"{{[Cc]omun" -excepttext:"{{[Ff]razion" -excepttext:"{{[Cc]anton"
- Ripetere ogni: 2 mesi
- ultima esecuzione di: Non fatto La sostituzione non è stata eseguita sull'ultimo dump. Ultima esecuzione (dump 20110313): --Aushulz (msg) 00:23, 28 mar 2011 (CEST)
- Commenti
Tale comando contempla anche i casi in cui ci siano spazi, trattini, virgole o qualsiasi altro carattere tra un template e l'altro, ad esempio:
{{en}} {{fr}} {{it}} {{en}}, {{fr}}, {{it}} {{en}} - {{fr}} - {{it}} {{en}}, {{fr}} e {{it}}
Questo comando prende in considerazione i template lunghi 2 o 3 lettere e con la seconda lettera minuscola. Bisogna quindi verificare preventivamente che nella Categoria:Template lingue dei collegamenti esterni non ci siano template che non rispettino tali criteri, e in caso contrario controllarli a parte (se sono inclusi in poche pagine) o modificare il comando per fare rientrare anche questi casi. Ho inserito nell'"excepttext" i template di 2 o 3 caratteri che non sono template lingua, se durante il botolaggio ne trovate spesso anche altri li potete inserire.
Il comando riesce a individuare fino a 6 template disposti consecutivamente; nei pochi casi in cui se ne trovino più di 6, bisogna agire manualmente (cliccando "b" per aprire la voce in questione).
Le ultime regex, che riguardano l'eliminazione dell'indicazione della lingua italiana, sono state inserite in questo comando per evitare che un template:it venga cancellato quando va invece inserito nel template:lingua (in alternativa si sarebbe potuto dividere il comando in due parti, eseguendo prima la parte che riguarda l'inserimento del template:lingue e subito dopo la parte che riguarda l'eliminazione dei template:it rimasti "soli").
Ho aggiunto l'excepttext per il template:Quote in quanto in questo caso l'indicazione della lingua italiana potrebbe non essere superflua (ad esempio ci può essere un testo in italiano a fronte di un testo in altra lingua). --Aushulz (msg) 00:23, 28 mar 2011 (CEST)
Pagine correlate
[modifica wikitesto]Collegamenti esterni
[modifica wikitesto]- HOWTO sulle Espressioni Regolari di A.M. Kuchling (Python).
- Manuale delle regex su botwiki, comprende una spiegazione per l'utilizzo dei dump.