Utente:YuBot/Script: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 654:
finally:
wikipedia.stopme()
</source>
== opereteatrali.py ==
<source lang="python">
# -*- coding: utf-8 -*-
import wikipedia, sys, re, catlib, pagegenerators
#################################################
# #
# opereteatrali.py - ver. 0.5 beta #
# #
#################################################
"""
Questo script raccoglie dati relativi alle opere teatrali
presenti su it.wiki, restituendo un elenco di voci
"""
def linguaLink(lingua):
if re.search(r'[Ii]talian', lingua):
lingua='{{it}}'
elif re.search(r'[Nn]apoletan', lingua):
lingua='{{nap}}'
elif re.search(r'[Ii]nglese', lingua):
lingua='{{en}}'
elif re.search(r'[Ll]atin', lingua):
lingua='{{la}}'
elif re.search(r'[Gg]reco [Aa]ntico', lingua):
lingua='{{grc}}'
elif re.search(r'[Ff]rancese', lingua):
lingua='{{fr}}'
elif re.search(r'[Tt]edesc', lingua):
lingua='{{de}}'
else:
lingua='[['+lingua+']]'
return lingua
def main():
template=wikipedia.Page('it', 'Template:Dramma')
gen = pagegenerators.ReferringPageGenerator(template)
voci=[]
newtext=''
for page in gen:
if not page in voci:
if page.namespace() == 0:
voci.append(page)
voci.sort()
for pagina in voci:
titor=False
titolo=''
lingua=''
titoloorig=''
nomeautore=''
cognomeautore=''
epoca=''
if re.search(r'Elenco', str(pagina)):
continue
wikipedia.output(u'\n>>> %s <<<' % pagina.title())
testo=pagina.get()
listaparametri=pagina.templatesWithParams()
for parametro in listaparametri:
trova=re.search(r'[Dd]ramma', parametro[0])
if trova:
for p in parametro[1]:
trova=re.search(r'Titoloitaliano', p)
if trova:
titolo=p[15:]
if titolo.startswith(' '):
titolo=titolo[1:]
titolo = re.sub('\n', '', titolo).strip()
trova=re.search(r'Titolooriginale', p)
if trova:
titoloorig=p[16:]
titoloorig = re.sub('\n', '', titoloorig).strip()
if titoloorig.startswith(' '):
titoloorig=titoloorig[1:]
if re.search(r'[Pp]olytonic', titoloorig):
titor=True
continue
if titor==True:
p = re.sub('\n', '', p).strip()
titoloorig=titoloorig+'|'+p+'}}'
titor=False
trova=re.search(r'Nome', p)
if trova:
nomeautore=p[5:]
nomeautore = re.sub('\n', '', nomeautore).strip()
if nomeautore.startswith(' '):
nomeautore=nomeautore[1:]
trova=re.search(r'Cognome', p)
if trova:
cognomeautore=p[8:]
cognomeautore = re.sub('\n', '', cognomeautore).strip()
if cognomeautore.startswith(' '):
cognomeautore=cognomeautore[1:]
trova=re.search(r'Linguaoriginale', p)
if trova:
lingua=re.sub(r'Linguaoriginale ?= ?', '', p)
lingua = re.sub('\[', '', lingua).strip()
lingua = re.sub('\]', '', lingua).strip()
lingua = re.sub('\n', '', lingua).strip()
lingua=linguaLink(lingua)
if lingua.startswith(' '):
lingua=lingua[1:]
trova=re.search(r'Epocacomposizione', p)
if trova:
epoca=p[18:]
epoca = re.sub('\n', '', epoca).strip()
if epoca.startswith(' '):
epoca=epoca[1:]
if not nomeautore=='' or cognomeautore=='':
autore='[['+nomeautore+' '+cognomeautore+']]'
else:
autore=nomeautore+cognomeautore
if not titoloorig == '':
titoloorig="''"+titoloorig+"''"
testo= '|-\n'+'| \'\'[['+pagina.title()+'|'+titolo+']]\'\' || '+lingua+' || '+titoloorig+' || '+autore+' || '+epoca+'|| ||\n'
newtext=newtext+testo
lista=wikipedia.Page('it', 'Utente:Yuma/Sandbox/5')
vecchiotesto=lista.get()
newtext = newtext + '|}'
findRegexp = "\|\}"
replaceRegexp = newtext
nuovotesto = re.sub(findRegexp, replaceRegexp, vecchiotesto)
wikipedia.showDiff(vecchiotesto, nuovotesto)
choice = wikipedia.inputChoice(u"Aggiorno?", ['Yes', 'No'], ['y', 'N'], 'N')
if choice in ['Y', 'y']:
wikipedia.setAction(u'Bot: Prove di trasmissione ^__^')
lista.put(nuovotesto)
if __name__ == "__main__":
try:
main()
finally:
wikipedia.stopme()
</source>
|