Utente:G4/Script: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
G4 (discussione | contributi)
G4 (discussione | contributi)
Riga 20:
#page = wikipedia.Page(wikipedia.getSite(), "Utente:Gianlu4Bot/Sandbox") # Solo per test
db = _mysql.connect(host='localhost', user='MagicBot', passwd='**********', db='magic_cards_2003')
db.query("SELECT COUNT(Cod_CartaNumero) FROM magic_cards") # Conta le carte
num = int(db.store_result().fetch_row(how=1)[0]['COUNT(Cod_CartaNumero)']) + 100011
templateFile = codecs.open("modellocarta.txt", "r", "utf-8")
modelloVocemodellovoce = templateFile.read() # Legge il modello della voce
templateFile.close()
for i in range(serialBegin, num):
# Ottiene tutte le info sulla carta corrente
db.query("SELECT * FROM magic_cards WHERE Cod_CartaNumero LIKE " + str(i))
dict = db.store_result().fetch_row(how=1)[0]
Riga 39:
else:
oldtxt = ''
 
newtxt = elaboraVoce(modelloVoce, dict)
elencoSostituzioni = [ "Nome_Carta", "English", "Costo", "Tipo", "F_C", "Rarita", "Set", "Testo" ]
 
 
# Dato un testo ed un dizionario di sostituzioni
# usa le regex per il "find and replace"
for k in dictelencoSostituzioni:
text modellovoce = re.sub(k, dict[k], textmodellovoce)
# Sostituzioni HTML->wikimarkup
nuovoTesto modellovoce = re.sub("< */? *(em|EM) *>", "''", nuovoTestomodellovoce)
}
newtxt = elaboraVoce(modelloVoce, dict)modellovoce
 
wikipedia.showDiff(oldtxt, newtxt)
if (not all):
Line 52 ⟶ 65:
if choice in ['Y', 'y']:
wikipedia.setAction(u'[[Wikibooks:Bot|Bot]]: Aggiunta carta: ' + dict['Nome_Carta'])
page.put(page.get()oldtxt + "\n" + newtxt)
def elaboraVoce(modelloVoce, dict):
elencoSostituzioni = { # Sostituisce le variabili nel modello
'#Nome_Carta': dict['Nome_Carta'],
'#English': dict['English'],
'#Costo': dict['Costo'],
'#Tipo': dict['Tipo'],
'#F_C': dict['F_C'],
'#Rarita': dict['Rarita'],
'#Set': dict['Set'],
'#Testo': dict['Testo'],
}
nuovoTesto = massiveReplace(elencoSostituzioni, modelloVoce)
# Sostituzioni HTML->wikimarkup
nuovoTesto = re.sub("< */? *(em|EM) *>", "''", nuovoTesto)
return nuovoTesto
def massiveReplace(dict, text):
# Dato un testo ed un dizionario di sostituzioni
# usa le regex per il "find and replace"
for k in dict:
text = re.sub(k, dict[k], text)
return text
if __name__ == "__main__":
Line 84 ⟶ 72:
main()
finally:
wikipedia.stopme()</source>
</source>
 
=== <tt>modellocarta.txt</tt> ===
<pre>
{{Carta Magic
|italiano=#Nome_Carta
|inglese=#English
|costo=#Costo
|tipo=#Tipo
|rar=#Rarita
|forzacosti=#F_C
|espan=#Set
|testo=#Testo
}}
</pre>