Utente:YuBot/Script: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 659:
<source lang="python">
# -*- coding: utf-8 -*-
 
import wikipedia, sys, re, catlib, pagegenerators
 
#################################################
# #
# opereteatrali.py - ver. 1.12 #
# #
#################################################
 
"""
Questo script raccoglie dati relativi alle opere teatrali
presenti su it.wiki, restituendo un elenco di voci
"""
def caratteri(parola):
 
caratteri = {u"È":"E",
u"É":"E",
u"Č":"C"
}
for car in caratteri.keys():
alf=caratteri[car]
if parola.startswith(car):
parolasenza = parola[len(car):]
parola = alf+parolasenza
return parola
def linguaLink(lingua):
if re.search(r'[Ii]talian', lingua):
lingua='{{it}}'
elif re.search(r'[Ii]nglese', lingua):
lingua='{{en}}'
Line 702 ⟶ 713:
elif re.search(r'[Ss]vedese', lingua):
lingua='{{sv}}'
#Dialetti
elif re.search(r'[Nn]apoletan', lingua):
Line 714 ⟶ 725:
else:
lingua='[['+lingua+']]'
if lingua == '[[]]':
lingua = ''
return lingua
 
def autoreLink(nomeautore, cognomeautore):
 
cognomeautore=caratteri(cognomeautore)
if nomeautore and cognomeautore:
autore='[['+nomeautore+' '+cognomeautore+'|'+cognomeautore+', '+nomeautore+']]'
Line 730 ⟶ 743:
else:
autore=''
return autore
 
def titoloLink(titoloorig):
articoli = ["Il ", "Lo ", "La ", "I ", "Gli ", "Le ", "L'", "'O ", "'A ", "Un ", "Uno ", "Una ", "Un'"]
 
titolo=titoloorig
 
for articolo in articoli:
if titoloorig.startswith(articolo):
titolosenza = titoloorig[len(articolo):]
titolomaiuscolo = titolosenza[:1].upper()+titolosenza[1:]
titolo=titolomaiuscolo +', '+articolo
titolo=caratteri(titolo)
return titolo
 
def main():
template=wikipedia.Page('it', 'Template:Dramma')
Line 752 ⟶ 767:
listone={}
articoli = ["Il ", "Lo ", "La ", "I ", "Gli ", "Le ", "L'", "'O ", "'A ", "Un ", "Uno ", "Una ", "Un'"]
for page in gen:
if not page in voci:
Line 759 ⟶ 774:
titolo=titoloLink(page.title())
listone[page.title()]=titolo
items=listone.items()
backitems=[ [v[1],v[0]] for v in items]
backitems.sort()
voci=[ backitems[i][1] for i in range(0,len(backitems))]
 
count=0
 
for voce in voci:
pagina=wikipedia.Page('it', voce)
titor=False
titoloorig=''
diz = {'Titoloitaliano':'',
'Titolooriginale':'',
Line 780 ⟶ 795:
'Epocacomposizione':''
}
if re.search(r'Elenco', str(pagina)):
continue
else:
count=count+1
wikipedia.output(u'\n>>> %s <<<' % pagina.title())
testo=pagina.get()
listaparametri=pagina.templatesWithParams()
if re.search(r'\{\{[Dd]ramma', testo):
for parametro in listaparametri:
for p in parametro[1]:
if re.search(r'[Pp]olytonic', p):
titor=True
continue
if re.search(r'[Uu]nicode', p):
titor=True
continue
Line 803 ⟶ 821:
diz['Titolooriginale']='{{polytonic|'+p+'}}'
titor=False
for k in diz.keys():
lun = len(k)+1
if re.search(k, p):
n=p[lun:]
Line 814 ⟶ 832:
else:
continue
 
for k in diz.keys():
n=diz[k]
if n.startswith(' '):
n=n[1:]
n = re.sub('\[', '', n).strip()
n = re.sub('\]', '', n).strip()
n = re.sub('\n', '', n).strip()
diz[k] = n
print diz
 
nomepagina = pagina.title()
if titoloLink(diz['Titoloitaliano']):
titolo = '|'+titoloLink(diz['Titoloitaliano'])
Line 836 ⟶ 854:
else:
titolo=''
 
if titoloorig :
titoloorig="''"+titoloorig+"''"
else:
titoloorig=''
autore = autoreLink(diz['Nome'], diz['Cognome'])
lingua = linguaLink(diz['Linguaoriginale'])
titoloorig = diz['Titolooriginale']
epoca = diz['Epocacomposizione']
testo= '|-\n'+'|'+'\'\'[['+nomepagina+titolo+']]\'\' || '+autore+' || '+lingua+' || '+titoloorig+' || '+epoca+'\n'
newtext=newtext+testo
 
wikipedia.output(testo)
 
inizio='{| class="wikitable sortable"\n|+ Elenco di opere teatrali\n! Titolo !! Autore !! Lingua<br/>originale !! Titolo<br/>originale !! Anno<br/>composizione\n'
fine='|}'
Line 858 ⟶ 876:
vecchiotesto=lista.get()
nuovotesto = inizio + newtext + fine
wikipedia.showDiff(vecchiotesto, nuovotesto)
choice = wikipedia.inputChoice(u"Aggiorno?", ['Yes', 'No'], ['y', 'N'], 'N')
Line 870 ⟶ 888:
wikipedia.stopme()
</source>
 
== monitinsert.py ==
<source lang="python">