Utente:Tatobot/Script: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
PAWBot (discussione | contributi)
m Fix, replaced: <source → <syntaxhighlight (3), </source → </syntaxhighlight (3)
 
(33 versioni intermedie di 5 utenti non mostrate)
Riga 1:
<small>[[Speciale:Contributions/Tatobot|ultimi contributi]]</small>
[[File:Exquisite-exec.png|right]]
==Tutorial regex==
*http://fido.altervista.org/RegExp/regex.html
*[[Utente:FrescoBot/FAQ]]
 
==Mammiferi a rischio di estinzione==
{{Cassetto|titolo=mammiferi.py|testo=
<pre>
# -*- coding: utf-8 -*-
 
import wikipedia
import re
 
wikipedia.handleArgs()
mainPage = wikipedia.Page(wikipedia.getSite(), u'Mammiferi a rischio di estinzione')
txt = mainPage.get()
for i in mainPage.linkedPages():
if i.exists() or i.title().find(u'Immagine') != -1 or i.title().find(u'Image') != -1 or i.title().find(u'idae') != -1:
continue
regex = re.compile(u'\|\|(.*?)\|\| ?\'\'\[\[ ?%s' % i.title())
nomecomune = re.search(regex, txt).group(1)
scient = re.search(u'(.+?) (.+)', i.title())
genere = scient.group(1)
specie = genere[0] + u'. ' + scient.group(2)
print u'\nNome comune: %s\nNome scientifico: %s\nGenere: %s\nSpecie: %s\n' % (nomecomune, i.title(), genere, specie)
testopagina = u"{{s|mammiferi}}\n{{da completare (mammiferi a rischio di estinzione)}}\n{{Tassobox\n|colore=pink\n|nome=%s\n|statocons=\n|immagine=[[Immagine:Missing.png|220px]]\n|didascalia=''{{PAGENAME}}''\n|<!-- CLASSIFICAZIONE -->\n|dominio=\n|regno=[[Animalia]]\n|sottoregno=\n|superphylum=\n|phylum=[[Chordata]]\n|subphylum=[[Vertebrata]]\n|infraphylum=\n|microphylum=\n|nanophylum=\n|superclasse=\n|classe=[[Mammalia]]\n|sottoclasse=\n|infraclasse=\n|superordine=\n|ordine=?\n|sottordine=\n|infraordine=\n|superfamiglia=\n|famiglia=?\n|sottofamiglia=\n|genere='''[[%s]]'''\n|specie='''%s'''\n<!--NOMENCLATURA BINOMIALE-->\n|binome={{PAGENAME}}\n|biautore=\n|bidata=\n}}\n'''%s''' (''%s'') è un [[Mammalia|mammifero]] della [[famiglia (tassonomia)|famiglia]] ...\n\n\n== Descrizione==\n\n== Distribuzione e habitat ==\n\n== Abitudini ==\n\n== Status e conservazione==\nLa ''Zoological Society of London'', in base a criteri di unicità [[evoluzione|evolutiva]] e di esiguità della popolazione, considera ''{{PAGENAME}}'' una delle 100 specie di mammiferi a maggiore rischio di [[estinzione]].\n== Bibliografia ==\n*{{IUCN}}\n==Voci correlate==\n*[[Mammiferi a rischio di estinzione]]\n\n==Altri progetti==\n{{interprogetto|commons|wikispecies}}\n\n==Collegamenti esterni==\n*{{EDGE}}\n[[Categoria:Mammiferi]]\n\n[[en:{{PAGENAME}}]]" % (nomecomune, genere, specie, nomecomune, i.title())
print testopagina.encode('utf-8')
choice = wikipedia.inputChoice(u'Creo la pagina?', [u'Yes', u'No'], [u'y', u'N'], u'N')
if choice in [u'Y', u'y']:
wikipedia.setAction(u'Stub mammiferi generato da [[Utente:Tatobot|Tatobot]] a partire da [[Mammiferi a rischio di estinzione]].')
i.put(testopagina)
paginadiscussione = wikipedia.Page(wikipedia.getSite(), u'Discussione:' + i.title())
if paginadiscussione.exists():
olddiscussione = paginadiscussione.get()
else:
olddiscussione = u''
testodiscussione = u'{{da completare (mammiferi a rischio di estinzione)}}\nPrima di rimuovere questo template:\n#-inserisci articolo determinativo prima del nome comune\n#-verifica lo status di conservazione e inseriscilo nel tassobox\n#-verifica lapostrofo ordine di appartenenza e inseriscilo nel tassobox\n ' + olddiscussione
wikipedia.showDiff(olddiscussione, testodiscussione)
choice = wikipedia.inputChoice(u'Modifico la pagina di discussione?', [u'Yes', u'No'], [u'y', u'N'], u'N')
if choice in [u'Y', u'y']:
wikipedia.setAction(u'Pagina di discussione di stub mammiferi generato da [[Utente:Tatobot|Tatobot]] a partire da [[Mammiferi a rischio di estinzione]].')
paginadiscussione.put(testodiscussione)
wikipedia.stopme()
 
 
 
</pre>
}}
 
Volevo avvisarti che ho scritto un bot leggermente più efficiente di quello già esistente per la creazione delle pagine, idea del bot è di avere già all'interno i titoli con anche altri dati degli animali.
 
Faccio notare che all'interno di list sono state selezionate come commento alcune specie (quelle già esistenti e che pertanto non necessitano di modifiche o aggiunte) --[[Utente:Brodo|Brodo]] <small>[[discussioni utente:Brodo|(msg)]]</small> 15:26, 13 giu 2007 (CEST)
 
{{cassetto|
titolo=mammiferi2.py|
testo=
<syntaxhighlight lang=python>
# -*- coding: utf-8 -*-
 
import wikipedia
import re
 
list = [
# ['Lipotes vexillifer', 1, 'Cetacea', 'Platanistidae', 'CR'],
# ['Zaglossus bruijni', 2, 'Monotremata', 'Tachyglossidae', 'EN'],
# ['Bunolagus monticularis', 3, 'Lagomorpha', 'Leporidae', 'CR'],
# ['Solenodon cubanus', 4, 'Insectivora', 'Solenodontidae', 'EN'],
# ['Solenodon paradoxus', 5, 'Insectivora', 'Solenodontidae', 'EN'],
# ['Dicerorhinus sumatrensis', 6, 'Perissodactyla', 'Rhinocerotidae', 'CR'],
# ['Diceros bicornis', 7, 'Perissodactyla', 'Rhinocerotidae', 'CR'],
# ['Camelus bactrianus', 8, 'Artiodactyla', 'Camelidae', 'CR'],
# ['Lasiorhinus krefftii', 9, 'Diprotodontia', 'Vombatidae', 'CR'],
# ['Nesolagus netscheri', 10, 'Lagomorpha', 'Leporidae', 'CR'],
# ['Rhinoceros sondaicus', 11, 'Perissodactyla', 'Rhinocerotidae', 'CR'],
# ['Elephas maximus', 12, 'Proboscidea', 'Elephantidae', 'EN'],
# ['Equus asinus', 13, 'Perissodactyla', 'Equidae', 'CR'],
# ['Equus onager', 14, 'Perissodactyla', 'Equidae', 'CR'],
# ['Paracoelops megalotis', 15, 'Chiroptera', 'Rhinolophidae', 'CR'],
# ['Daubentonia madagascariensis', 16, 'Primates', 'Daubentoniidae', 'EN'],
# ['Glirulus japonicus', 17, 'Rodentia', 'Myoxidae', 'EN'],
# ['Ailuropoda melanoleuca', 18, 'Carnivora', 'Ursidae', 'EN'],
# ['Ailurus fulgens', 19, 'Carnivora', 'Ursidae', 'EN'],
# ['Otomops wroughtoni', 20, 'Chiroptera', 'Molossidae', 'CR'],
# ['Hexaprotodon liberiensis', 21, 'Artiodactyla', 'Hippopotamidae', 'EN'],
# ['Loris tardigradus', 22, 'Primates', 'Loridae', 'EN'],
# ['Hapalemur aureus', 23, 'Primates', 'Lemuridae', 'CR'],
['Hapalemur simus', 24, 'Primates', 'Lemuridae', 'CR'],
# ['Coleura seychellensis', 25, 'Chiroptera', 'Emballonuridae', 'CR'],
['Marmosa andersoni', 26, 'Didelphimorphia', 'Didelphidae', 'CR'],
# ['Monachus monachus', 27, 'Carnivora', 'Phocidae', 'CR'],
# ['Burramys parvus', 28, 'Diprotodontia', 'Burramyidae', 'EN'],
# ['Propithecus tattersalli', 29, 'Primates', 'Indridae', 'CR'],
['Notoryctes caurinus', 30, 'Notoryctemorphia', 'Notoryctidae', 'EN'],
['Notoryctes typhlops', 31, 'Notoryctemorphia', 'Notoryctidae', 'EN'],
['Isolobodon portoricensis', 32, 'Rodentia', 'Capromyidae', 'CR'],
# ['Aproteles bulmerae', 33, 'Chiroptera', 'Pteropodidae', 'CR'],
['Tapirus bairdii', 34, 'Perissodactyla', 'Tapiridae', 'EN'],
['Gracilinanus aceramarcae', 35, 'Didelphimorphia', 'Didelphidae', 'CR'],
# ['Indri indri', 36, 'Primates', 'Indridae', 'EN'],
# ['Damaliscus hunteri', 37, 'Artiodactyla', 'Bovidae', 'CR'],
['Macrotarsomys ingens', 38, 'Rodentia', 'Muridae', 'CR'],
['Pharotis imogene', 39, 'Chiroptera', 'Vespertilionidae', 'CR'],
['Talpa streeti', 40, 'Insectivora', 'Talpidae', 'CR'],
# ['Romerolagus diazi', 41, 'Lagomorpha', 'Leporidae', 'EN'],
['Dromiciops gliroides', 42, 'Microbiotheria', 'Microbiotheriidae', 'VU'],
# ['Cryptoprocta ferox', 43, 'Carnivora', 'Viverridae', 'EN'],
['Pentalagus furnessi', 44, 'Lagomorpha', 'Leporidae', 'EN'],
['Hylomys hainanensis', 45, 'Insectivora', 'Erinaceidae', 'EN'],
['Rhynchocyon chrysopygus', 46, 'Macroscelidea', 'Macroscelididae', 'EN'],
['Podogymnura aureospinula', 47, 'Insectivora', 'Erinaceidae', 'EN'],
['Podogymnura truei', 48, 'Insectivora', 'Erinaceidae', 'EN'],
# ['Craseonycteris thonglongyai', 49, 'Chiroptera', 'Craseonycteridae', 'EN'],
# ['Allocebus trichotis', 50, 'Primates', 'Cheirogaleidae', 'EN'],
['Tokudaia muenninki', 51, 'Rodentia', 'Muridae', 'CR'],
['Euroscaptor parvidens', 52, 'Insectivora', 'Talpidae', 'CR'],
# ['Dugong dugon', 53, 'Sirenia', 'Dugongidae', 'VU'],
['Gymnobelideus leadbeateri', 54, 'Diprotodontia', 'Petauridae', 'EN'],
['Micropotamogale lamottei', 55, 'Insectivora', 'Tenrecidae', 'EN'],
['Mystacina tuberculata', 56, 'Chiroptera', 'Mystacinidae', 'VU'],
# ['Chinchilla brevicaudata', 57, 'Rodentia', 'Chinchillidae', 'CR'],
# ['Chimarrogale hantu', 58, 'Insectivora', 'Soricidae', 'CR'],
# ['Chimarrogale sumatrana', 59, 'Insectivora', 'Soricidae', 'CR'],
['Selevinia betpakdalaensis', 60, 'Rodentia', 'Myoxidae', 'EN'],
['Soriculus salenskii', 61, 'Insectivora', 'Soricidae', 'CR'],
['Saiga tatarica', 62, 'Artiodactyla', 'Bovidae', 'CR'],
# ['Bradypus torquatus', 63, 'Xenarthra', 'Bradypodidae', 'EN'],
# ['Allactaga firouzi', 64, 'Rodentia', 'Dipodidae', 'CR'],
['Platanista gangetica', 65, 'Cetacea', 'Platanistidae', 'EN'],
['Platanista minor', 66, 'Cetacea', 'Platanistidae', 'EN'],
# ['Catagonus wagneri', 67, 'Artiodactyla', 'Tayassuidae', 'EN'],
['Nesoscaptor uchidai', 68, 'Insectivora', 'Talpidae', 'EN'],
['Marmosops handleyi', 69, 'Didelphimorphia', 'Didelphidae', 'CR'],
['Potorous longipes', 70, 'Diprotodontia', 'Potoroidae', 'EN'],
# ['Cynocephalus volans', 71, 'Dermoptera', 'Cynocephalidae', 'VU'],
['Uropsilus investigator', 72, 'Insectivora', 'Talpidae', 'EN'],
['Uropsilus soricipes', 73, 'Insectivora', 'Talpidae', 'EN'],
['Rhinoceros unicornis', 74, 'Perissodactyla', 'Rhinocerotidae', 'EN'],
['Sicista armenica', 75, 'Rodentia', 'Dipodidae', 'CR'],
['Typhlomys chapensis', 76, 'Rodentia', 'Muridae', 'CR'],
['Loxodonta africana', 77, 'Proboscidea', 'Elephantidae', 'VU'],
['Phocoena sinus', 78, 'Cetacea', 'Phocoenidae', 'CR'],
['Lagothrix flavicauda', 79, 'Primates', 'Cebidae', 'CR'],
['Tapirus pinchaque', 80, 'Perissodactyla', 'Tapiridae', 'EN'],
['Euchoreutes naso', 81, 'Rodentia', 'Dipodidae', 'EN'],
# ['Equus grevyi', 82, 'Perissodactyla', 'Equidae', 'EN'],
# ['Equus zebra', 83, 'Perissodactyla', 'Equidae', 'EN'],
['Trichechus inunguis', 84, 'Sirenia', 'Trichechidae', 'VU'],
['Murina grisea', 85, 'Chiroptera', 'Vespertilionidae', 'CR'],
['Dryomys sichuanensis', 86, 'Rodentia', 'Myoxidae', 'EN'],
['Tomopeas ravus', 87, 'Chiroptera', 'Vespertilionidae', 'VU'],
# ['Balaenoptera musculus', 88, 'Cetacea', 'Balaenopteridae', 'EN'],
# ['Balaenoptera physalus', 89, 'Cetacea', 'Balaenopteridae', 'EN'],
['Eupleres goudotii', 90, 'Carnivora', 'Viverridae', 'EN'],
['Dendromus kahuziensis', 91, 'Rodentia', 'Muridae', 'CR'],
['Glironia venusta', 92, 'Didelphimorphia', 'Didelphidae', 'VU'],
# ['Chaerephon gallagheri', 93, 'Chiroptera', 'Molossidae', 'CR'],
['Myzopoda aurita', 94, 'Chiroptera', 'Myzopodidae', 'VU'],
['Hypogeomys antimena', 95, 'Rodentia', 'Muridae', 'EN'],
['Rhinolophus imaizumii', 96, 'Chiroptera', 'Rhinolophidae', 'EN'],
['Pongo pygmaeus', 97, 'Primates', 'Hominidae', 'EN'],
['Tylomys bullaris', 98, 'Rodentia', 'Muridae', 'CR'],
['Tylomys tumbalensis', 99, 'Rodentia', 'Muridae', 'CR'],
['Myomimus setzeri', 100, 'Rodentia', 'Myoxidae', 'EN']
]
 
wikipedia.handleArgs()
mainPage = wikipedia.Page(wikipedia.getSite(), u'Mammiferi a rischio di estinzione')
txt = mainPage.get()
for m in list:
i=wikipedia.Page(wikipedia.getSite(), m[0])
if i.exists(): #or i.title().find(u'Immagine') != -1 or i.title().find(u'Image') != -1 or i.title().find(u'idae') != -1:
continue
regex = re.compile(u'\[\[%s\]\]\'\' *\|\| *(.*) *\|\|' % i.title())
nomecomune = re.search(regex, txt).group(1)
scient = re.search(u'(.+?) (.+)', i.title())
genere = scient.group(1)
specie = genere[0] + u'. ' + scient.group(2)
famiglia=m[3]
EDGE=m[1]
ordine=m[2]
statocons=m[4]
print u'\nNome comune: %s\nNome scientifico: %s\nOrdine: %s\nFamiglia: %s\nGenere: %s\nSpecie: %s\nId EDGE: %s' % (nomecomune, i.title(),famiglia,ordine, genere, specie, EDGE)
testopagina = u"{{s|mammiferi}}\n{{da completare (mammiferi a rischio di estinzione)}}\n{{Tassobox\n|colore=pink\n|nome=%s\n|statocons=%s\n|immagine=[[Immagine:Missing.png|220px]]\n|didascalia=''{{subst:PAGENAME}}''\n|<!-- CLASSIFICAZIONE -->\n|dominio=\n|regno=[[Animalia]]\n|sottoregno=\n|superphylum=\n|phylum=[[Chordata]]\n|subphylum=[[Vertebrata]]\n|infraphylum=\n|microphylum=\n|nanophylum=\n|superclasse=\n|classe=[[Mammalia]]\n|sottoclasse=\n|infraclasse=\n|superordine=\n|ordine=[[%s]]\n|sottordine=\n|infraordine=\n|superfamiglia=\n|famiglia=[[%s]]\n|sottofamiglia=\n|genere='''[[%s]]'''\n|specie='''%s'''\n<!--NOMENCLATURA BINOMIALE-->\n|binome={{subst:PAGENAME}}\n|biautore=\n|bidata=\n}}\n'''%s''' (''%s'') è un [[Mammalia|mammifero]] della [[famiglia (tassonomia)|famiglia]] [[%s]].\n\n\n== Descrizione==\n\n== Distribuzione e habitat ==\n\n== Abitudini ==\n\n== Status e conservazione==\nLa ''Zoological Society of London'', in base a criteri di unicità [[evoluzione|evolutiva]] e di esiguità della popolazione, considera ''{{subst:PAGENAME}}'' una delle 100 specie di mammiferi a maggiore rischio di [[estinzione]].\n== Bibliografia ==\n*{{IUCN}}\n==Voci correlate==\n*[[Mammiferi a rischio di estinzione]]\n\n==Altri progetti==\n{{interprogetto|commons|wikispecies}}\n\n==Collegamenti esterni==\n*{{EDGE|id=%s}}\n[[Categoria:Mammiferi]]\n\n[[en:{{subst:PAGENAME}}]]" % (nomecomune,statocons,ordine,famiglia, genere, specie, nomecomune, i.title(),famiglia, EDGE)
print testopagina.encode('utf-8')
choice = wikipedia.inputChoice(u'Creo la pagina?', [u'Yes', u'No'], [u'y', u'N'], u'N')
if choice in [u'Y', u'y']:
wikipedia.setAction(u'Stub mammiferi generato da [[Utente:Tatobot|Tatobot]] a partire da [[Mammiferi a rischio di estinzione]].')
i.put(testopagina)
redirect=wikipedia.Page(wikipedia.getSite(),nomecomune)
if not redirect.exists() or redirect.isRedirectPage():
redirect.put(u'REDIRECT [[%s]]\n[[Categoria:Mammiferi (nomi comuni)]]' % i.title())
paginadiscussione = wikipedia.Page(wikipedia.getSite(), u'Discussione:' + i.title())
if paginadiscussione.exists():
olddiscussione = paginadiscussione.get()
else:
olddiscussione = u''
testodiscussione = u'{{da completare (mammiferi a rischio di estinzione)}}\nPrima di rimuovere questo template:\n#-inserisci articolo determinativo prima del nome comune\n#-verifica esistenza di una immagine e sostituiscila a quella attuale (Missing.png)\n#-compila i campi biautore e bidata del tassobox\n#-inserisci il riferimento all autore nell incipit\n#-verifica esistenza della voce sui progetti collegati (commons e wikispecies)\n#-inserisci gli interwiki mancanti ([http://vs.aka-online.de/globalwpsearch/])\n#:ma sopratutto...\n#compila la voce, servendoti delle informazioni che trovi sul sito EDGE e su eventuali wiki-versioni in altre lingue!\n ' + olddiscussione
wikipedia.showDiff(olddiscussione, testodiscussione)
choice = wikipedia.inputChoice(u'Modifico la pagina di discussione?', [u'Yes', u'No'], [u'y', u'N'], u'N')
if choice in [u'Y', u'y']:
wikipedia.setAction(u'Pagina di discussione di stub mammiferi generato da [[Utente:Tatobot|Tatobot]] a partire da [[Mammiferi a rischio di estinzione]].')
paginadiscussione.put(testodiscussione)
wikipedia.stopme()</syntaxhighlight>
}}
 
==Uccelli nidificanti in Italia==
Conosci il [[Python]]? Se no, ti spiego il codice.
 
:--[[Utente:Pietrodn|'''<span style="font-variant:small-caps;"><span style="color:red;">Pi</span><span style="color:orange;">et</span><span style="color:green;">ro</span></span>''']][[Discussioni utente:Pietrodn|'''<sup><span style="font-variant:small-caps; cursor:help;"><span style="color:blue;">Dn</span></span></sup>''']] 18:00, 11 ott 2006 (CEST)
:{{Utente:Pietrodn/Firma}} 18:00, 11 ott 2006 (CEST)
 
{{Cassetto|titolo=uccelli.py|testo=
Line 17 ⟶ 221:
txt = mainPage.get()
for i in mainPage.linkedPages():
if (not i.exists()) andor i.title().find(u'Immagine') =!= -1 andor i.title().find(u'Image') =!= -1:
continue
regex = re.compile(u'\|\|(.*?)\|\| ?\'\'\[\[ ?%s' % i.title())
regex = re.compile(u'\|\|(.*?)\|\| ?\'\'\[\[ ?%s' % i.title())
nomecomune = re.search(regex, txt).group(1)
scient nomecomune = re.search(u'(.+?)regex, (.+txt)', i.titlegroup()1)
scient = re.search(u'(.+?) (.+)', i.title())
genere = scient.group(1)
genere = scient.group(1)
specie = genere[0] + u'. ' + scient.group(2)
print u'\nNome comune: %s\nNome scientifico: %s\nGenere: %s\nSpecie: %s\n' % (nomecomune, i.title(), genere, specie)
testopagina = u"{{stub uccelli}}\n{{da completare (uccelli)}}\n{{Tassobox\n|colore=pink\n|nome=%s\n|statocons=\n|immagine=\n|didascalia=''{{PAGENAME}}''\n|<!-- CLASSIFICAZIONE -->\n|dominio=\n|regno=[[Animalia]]\n|sottoregno=\n|superphylum=\n|phylum=[[Chordata]]\n|subphylum=[[Vertebrata]]\n|infraphylum=\n|microphylum=\n|nanophylum=\n|superclasse=[[Tetrapoda]]\n|classe=[[Aves]]\n|sottoclasse=[[Neornithes]]\n|infraclasse=\n|superordine=\n|ordine=\n|sottordine=\n|infraordine=\n|superfamiglia=\n|famiglia=\n|sottofamiglia=\n|genere='''[[%s]]'''\n|specie='''%s'''\n<!--NOMENCLATURA BINOMIALE-->\n|binome={{PAGENAME}}\n|biautore=\n|bidata=\n}}\n'''%s''' (''%s'') è un [[uccello]] della [[famiglia (tassonomia)|famiglia]] ...\n\n\n== Sistematica ==\n\n== Aspetti morfologici==\n\n== Distribuzione e habitat ==\n\n== Abitudini ==\n<!--=== Voce ===-->\n<!--=== Cibo ed Alimentazione ===-->\n<!--=== Riproduzione ===-->\n<!--=== Spostamenti ===-->\n<!--=== Relazioni con l'uomo ===-->\n\n== Status e conservazione==\n\n== Curiosità ==\n\n== Bibliografia ==\n\n==Voci correlate==\n*[[Uccelli nidificanti in Italia]]\n\n==Altri progetti==\n{{interprogetto|commons|wikispecies}}\n\n==Collegamenti esterni==\n{{avibase}}\n\n[[Categoria:Specie (uccelli)]]\n\n[[en:{{PAGENAME}}]]" % (nomecomune, genere, specie, nomecomune, i.title())
print testopagina.encode('utf-8')
choice = wikipedia.inputChoice(u'Creo la pagina?', [u'Yes', u'No'], [u'y', u'N'], u'N')
if choice in [u'Y', u'y']:
wikipedia.setAction(u'Stub uccelli generato da [[Utente:Tatobot|Tatobot]] a partire da [[Uccelli nidificanti in Italia]].')
i.put(testopagina)
paginadiscussione = wikipedia.Page(wikipedia.getSite(), u'Discussione:' + i.title())
if paginadiscussione.exists():
olddiscussione = paginadiscussione.get()
else:
olddiscussione = u''
testodiscussione = u'{{da completare (uccelli)}}\n{{da fare}}' + olddiscussione
wikipedia.showDiff(olddiscussione, testodiscussione)
choice = wikipedia.inputChoice(u'Modifico la pagina di discussione?', [u'Yes', u'No'], [u'y', u'N'], u'N')
if choice in [u'Y', u'y']:
wikipedia.setAction(u'Pagina di discussione di stub uccelli generato da [[Utente:Tatobot|Tatobot]] a partire da [[Uccelli nidificanti in Italia]].')
paginadiscussione.put(testodiscussione)
wikipedia.stopme()
 
</pre>
}}
 
==Inserisci testo==
Questo script '''non''' verifica l'esistenza di una stringa nel testo, puoi
provare a modificarlo tu.
 
La funzione che analizza un testo per cercare una data stringa è
 
testo_da_analizzare.find(stringa_da_cercare,[inizio],[fine])
 
dà come risultato -1 se la stringa non viene trovata, altrimenti dà il
numero di caratteri dall'inizio del testo in cui inizia la striga.
 
Ciao.
G. (PagØ)
 
{{Cassetto|titolo=inserisci_testo.py|testo=
 
<pre>
# -*- coding: cp1252 -*-
 
'''
creare un file test.txt salvato con codifica ANSI e con la seguente sintassi
 
nome_pagina<<testo da inserire
 
un elemento per riga
'''
 
import re, sys, getpass
import httplib
import wikipedia, config
 
def scrivi(pagina,testo):
crlf = chr(13) + chr(10)
site=wikipedia.getSite(code='it',fam='wikipedia')
pl = wikipedia.PageLink(site, pagina)
testo_originale = u'' + pl.get()
 
primadi=["== Collegamenti esterni ==", "[[categoria:", "[[Categoria:"]
 
for j in range(0, len(primadi)):
i = testo_originale.find(primadi[j])
if i > -1:
break
print i
if i == -1:
testo_nuovo = testo_originale + crlf + crlf + testo
else:
testo_nuovo = testo_originale[:i] + crlf + testo + crlf + testo_originale[i:]
 
pl.put(testo_nuovo,'+ ' + testo)
print 'inserito ' + testo
#print testo_nuovo
 
def main(nomefile):
f = open(nomefile, 'r')
for line in f.readlines():
w = line.split('<<')
i = len(w)
if i > 1 :
print 'nella pagina: ', w[0]
print 'sto scrivendo il testo: ', w[1]
scrivi(w[0],w[1])
f.close()
if __name__ == "__main__":
try:
main("c:/python24/tools/wiki/test.txt")
except:
wikipedia.stopme()
raise
else:
wikipedia.stopme()
</pre>
}}
Line 102 ⟶ 395:
if debug:
wikipedia.output(u"%s = %s" % (key, value))
if params.has_key(key) in params:
raise Error(u"Duplicate key %s" % key)
if value:
Line 412 ⟶ 705:
n += 1
 
if not params.has_key('binomial') and not in params.has_key( and 'trinomial') not in params:
n, found = parse_nomial('', n, lines, params)
 
Line 449 ⟶ 742:
 
# Some other checks
if params.has_key('norank') in params:
raise Error(u"Can't handle {{taxobox norank entry}}, sorry.")
if params.has_key('unranked') in params:
raise Error(u"Can't handle {{taxobox unranked entry}}, sorry.")
 
# Fix some simple mistakes.
if (params.has_key('genus') andin params.has_key( and 'name') in params \
and params['genus'] == "'''''%s'''''" % params['name']):
params['name'] = "''%s''" % params['name']
if (params.has_key('binomial') andin params.has_key( and 'name') in params \
and params['binomial'] == "''%s''" % params['name']):
params['name'] = "''%s''" % params['name']
if (params.has_key('trinomial') andin params.has_key( and 'name') in params \
and params['trinomial'] == "''%s''" % params['name']):
params['name'] = "''%s''" % params['name']
if (params.has_key('image_caption') in params \
and canonize(params['image_caption']) \
in (canonize(params.get('name', '')),
canonize(params.get('binomial', '')),
Line 471 ⟶ 764:
canonize(params.get('genus', '')) + 'sp',
canonize(params.get('name', '') + params.get('binomial', '')),
)):
del params['image_caption']
if params.has_key('binomial_authority') in params:
params['binomial_authority'] = re.sub(r',,', ',',
params['binomial_authority'])
if params.has_key('trinomial_authority') in params:
params['trinomial_authority'] = re.sub(r',,', ',',
params['trinomial_authority'])
if params.has_key('genus') in params and re.match(r"'''''[[.*]]'''''$", params['genus']):
params['genus'] = params['genus'][3:-3]
if params.has_key('name') in params:
m = re.match(r"<center> *(.*[^ ]) *</center>$", params['name'])
if m:
params['name'] = m.group(1)
if params.has_key('subdivision_ranks') in params:
m = re.match(r"<center> *(.*[^ ]) *</center>$", params['subdivision_ranks'])
if m:
params['subdivision_ranks'] = m.group(1)
if params.has_key('genus') in params and re.match(r"(''')?[^']+\1$", params['genus']):
params['genus'] = "''%s''" % params['genus']
if params.has_key('species') in params and re.match(r"(''')?[^']+\1$", params['species']):
params['species'] = "''%s''" % params['species']
if params.has_key('subspecies') in params and re.match(r"(''')?[^']+\1$", params['subspecies']):
params['subspecies'] = "''%s''" % params['subspecies']
if params.has_key('species') andin params.has_key( and 'binomial') in params and re.match(r"''[^']+''$", params['species']):
params['species'] = "'''%s'''" % params['species']
if params.has_key('subspecies') andin params.has_key( and 'trinomial') in params and re.match(r"''[^']+''$", params['subspecies']):
params['subspecies'] = "'''%s'''" % params['subspecies']
if params.has_key('subdivision') in params and canonize(params['subdivision']) == 'seetext':
params['subdivision'] = '\nSee text.'
if (params.has_key('binomial') andin params.has_key( and 'species') in params \
and re.match("'''''[^']*'''''$", params['species'])):
m = re.match(r"'*([A-Z])[a-z-]* ([a-z-]*)'*", params['binomial'])
if m:
params['species'] = "'''''%s. %s'''''" % (m.group(1), m.group(2))
if (params.has_key('trinomial') andin params.has_key( and 'subspecies') in params \
and re.match("'''''.*'''''$", params['subspecies'])):
m = re.match(r"'*([A-Z])[a-z-]* ([a-z])[a-z-]* ([a-z][a-z-]*)'*", params['trinomial'])
if m:
Line 521 ⟶ 814:
newtext = re.sub(r'(?is){{taxobox[ _]+begin *\|.*{{taxobox[ _]+end *}}',
'{{Taxobox\n'
+ ''.join(map(lambda k: '| %s = %s\n' % (k, params[k]),
for k filter(lambda s:in params.has_key(s),['sequence']
if k in params params['sequence'])))
+ '}}', text)
newtext = check(pl.get(), newtext)
Line 617 ⟶ 910:
wikipedia.stopme()
</nowiki></pre>
}}
 
 
== Avvisa utenti ==
{{cassetto|
titolo=avvisoFdV.py|
testo=
<syntaxhighlight lang=python>
# -*- coding: utf-8 -*-
 
import wikipedia
import re
 
list = [
* [[Utente:Dark-deoxys-ex]]
* [[Utente:Fradeve11]]
* [[Utente:Kalumet Sioux]]
* [[Utente:Paolo.bertinetto]]
* [[Utente:Thom]]
* [[Utente:Archenzo]]
* [[Utente:Cinerino]]
* [[Utente:Marrabbio2]]
* [[Utente:Carnby]]
* [[Utente:Dschiavon]]
* [[Utente:rdelre]]
* [[Utente:Svante]]
* [[Utente:Broc]]
* [[Utente:Esculapio]]
* [[Utente:Phenagen]]
* [[Utente:Ale.com]]
* [[Utente:Tanarus]]
* [[Utente:Brodo]]
* [[Utente:Aaaaaa]]
* [[Utente:Michele859]]
* [[Utente:Gia.cossa]]
* [[Utente:White_wolf]]
* [[Utente:Ottaviano II]]
* [[Utente:Ghedo]]
* [[Utente:Gonne junior]]
* [[Utente:Saphira555]]
* [[Utente:Eliasoriordan]]
* [[Utente:Link89]]
* [[Utente:Lycaon]]
* [[Utente:Winged_Zephiro]]
* [[Utente:Black mamba]]
* [[Utente:Furriadroxiu]]
* [[Utente:Niko87]]
* [[Utente:Andie]]
* [[Utente:Reedj.]]
* [[Utente:Marruz]]
* [[Utente:Tursiops]]
* [[utente:Sogeking]]
* [[Utente:Yoruno]]
* [[Utente:Piper90]]
* [[Utente:Wento]]
* [[Utente:*evy*splash]]
* [[Utente:Corneliae]]
* [[Utente:Carnby]]
* [[Utente:Morgoth92]]
* [[Utente:Yuma]]
* [[Utente:Arlas!]]
* [[Utente:Nicknotfound]]
* [[Utente:Vitalfranz]]
* [[Utente:GioMax]]
* [[Utente:Happyhour]]
 
 
]
 
wikipedia.handleArgs()
mainPage = wikipedia.Page(wikipedia.getSite(), u'Progetto:Forme di vita/Utenti')
txt = mainPage.get()
for m in list:
i=wikipedia.Page(wikipedia.getSite(), m[0])
if i.exists(): #or i.title().find(u'Immagine') != -1 or i.title().find(u'Image') != -1 or i.title().find(u'idae') != -1:
continue
regex = re.compile(u'\[\[%s\]\]\'\' *\|\| *(.*) *\|\|' % i.title())
 
paginadiscussione = wikipedia.Page(wikipedia.getSite(), u'Discussione:' + i.title())
if paginadiscussione.exists():
olddiscussione = paginadiscussione.get()
else:
olddiscussione = u''
testodiscussione = u' ===Avviso===\n ' + olddiscussione
wikipedia.showDiff(olddiscussione, testodiscussione)
choice = wikipedia.inputChoice(u'Modifico la pagina di discussione?', [u'Yes', u'No'], [u'y', u'N'], u'N')
if choice in [u'Y', u'y']:
wikipedia.setAction(u'messaggio dal progetto:Forme di vita')
paginadiscussione.put(testodiscussione)
wikipedia.stopme()</syntaxhighlight>
}}
 
 
{{cassetto|titolo=avvisaUtenti.py|testo=
<syntaxhighlight lang="python">
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wikipedia
 
listaDiscussioni = [
"Discussioni utente:Tatobot",
"Discussioni utente:Esculapio",
# TUTTI GLI UTENTI QUI!
]
 
def main():
all = False
wikipedia.handleArgs()
mySite = wikipedia.getSite(code='it', fam='wikipedia')
messaggio = wikipedia.Page(mySite, "Utente:Tatobot/avviso").get() # QUI CI VA LA PAGINA IN CUI C'È IL MESSAGGIO!
for i in listaDiscussioni:
currentPage = wikipedia.Page(mySite, i)
try:
oldText = currentPage.get()
except wikipedia.NoPage:
wikipedia.output(currentPage.title() + " does not exist!")
continue
except wikipedia.IsRedirectPage:
currentPage = currentPage.getRedirectTarget()
oldText = currentPage.get()
wikipedia.output(">>>>> " + currentPage.title() + " <<<<<")
newText = oldText + "\n\n" + messaggio
wikipedia.showDiff(oldText, newText)
if not all:
choice = wikipedia.inputChoice(u"Modificare?", ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N')
else:
choice = 'y'
if choice in ['A', 'a']:
all = True
choice = 'y'
if choice in ['Y', 'y']:
# AGGIUNGERE UN OGGETTO APPROPRIATO
currentPage.put(newText, minorEdit=False, comment=u'/* OGGETTO DEL MESSAGGIO */ nuova sezione - messaggio automatico')
if __name__ == "__main__":
try:
main()
finally:
wikipedia.stopme()
</syntaxhighlight>
}}