Viquipèdia:Viquitrobada 2009/Taller de bots/Amical-bot.v0
Aparença
# -*- coding:utf-8 -*-
global idioma, pagina_er, usuari, pagina_origen , titol_de_la_pagina
#Carrega mòduls
import wikipedia, codecs, re, catlib
import re
import httplib, time, urllib
from time import strftime as date
def executa_er(pagina_amb_er, text):
#Funció per executar sobre un text, les expressions regulars emmagatzemades en una pàgina
troba_les_er=re.compile("(?<=\n\*).*")
errors_trobats = re.compile("== Errors trobats ==")
pagina = wikipedia.Page( wikipedia.getSite("ca","wikipedia"), pagina_amb_er)
try:
pagina_expressions = pagina.get()
except:
return text
expressions=troba_les_er.findall(pagina_expressions)
errors_ja_trobats = errors_trobats.findall(pagina_expressions) #Els errors ja s'han trobat en un altre traducció
errors_nous = 0
maxim=len(expressions)
i=0
#Cerca i substitueix cada una de les expresions regulars
while i < maxim:
try:
titol = re.compile(expressions[i])
except:
if len(errors_ja_trobats)>0:
if errors_nous == 0:
pagina_expressions = pagina_expressions+"\n== Errors trobats ==\n"
errors_nous = 1
pagina_expressions = pagina_expressions + u"l'expressió regular '"+expressions[i]+u"' no s'ha pogut compilar\n"
pagina.put(pagina_expressions,u"bot notificant error en expressió regular")
i=i+2
continue
try:
text = titol.sub(expressions[i+1],text)
except:
if len(errors_ja_trobats)>0:
if errors_nous == 0:
pagina_expressions = pagina_expressions+"\n== Errors trobats ==\n"
errors_nous = 1
pagina_expressions = pagina_expressions + u"l'expressió '"+expressions[i+1]+u"' ha donat error al substituir\n"
pagina.put(pagina_expressions,u"bot notificant error en expressió regular")
i=i+2
return text
def preprocessa(text,pagina):
noutext = executa_er("Usuari:Jrgoma/Pre", text)
#Grava la pàgina modificada
pagina.put(noutext,u'bot preprocessant article previ a la traduccioo automatica')
def postprocessa(text,pagina):
noutext = executa_er("Usuari:Jrgoma/Post", text)
#Grava la pàgina modificada es pot eliminar quen ja funcioni i tornar el nou text
pagina.put(noutext,u'bot postprocessant article despres de la traduccioo automatica')
return noutext
def getURL(title, lang):
#funció per cridat el traducor automàtic de gencat torna el text del article traduit al català
#si el traductor està fora de servei hauria de tornar ''
print 1
page = wikipedia.Page(wikipedia.getSite('ca'), title)
tr_dir = {"en": "ENGLISH-CATALAN", "fr": "FRENCH-CATALAN", "de": "GERMAN-CATALAN", "es": "SPANISH-CATALAN"}
if lang not in tr_dir:
return 'idioma no suportat'
tr_dir = tr_dir[lang]
url = u"http://%s.org%s" % (
".".join(page.site().sitename().split(":")[::-1]),
page.site().edit_address(page.urlname()).split("&useskin=monobook")[0]
)
url = "http://%s.wikipedia.org/wiki/%s?action=edit" % ('ca', urllib.quote(title.encode("utf-8")))
print 2
params ={
"translationDirection": tr_dir,
"subjectArea": "GV",
"MARK_ALTERNATIVES": "0",
"url": url
}
params = urllib.urlencode(params)
user_agent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; ca; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 GTB6"
headers= {
'User-Agent': user_agent,
"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain",
}
data=None
print 3
print params
retry=0
while data is None:
print 4
try:
conn = httplib.HTTPConnection('traductor.gencat.net')
print 5
conn.request("POST", "/url.do", params, headers)
response = conn.getresponse()
data = response.read()
except KeyboardInterrupt:
print 6
print u"l'usuari ha cancel·lat"
break
except Exception, e:
print 7
print e, retry
retry+=1
retry_time = retry*2
if retry_time>30:
retry_time =30
time.sleep(retry_time*60)
if retry>=30:break
textarea = re.compile(r"^.*<textarea[^>]*>(.+?)</textarea>.*$", re.DOTALL)
data = textarea.sub(ur"\1", data)
data = wikipedia.html2unicode(data)
return data
def titol_catala(idioma,titol):
#Funció per trobar el títol en català d'una pàgina donada en l'idioma origen
#Si la pàgina en l'idioma oringinal no exiteix o no té interwiki en català retorna ''
#Altrament retorna el títol de la pàgina en catalá en majúscules o minúscules segon estigui el títol de la pàina original.
interwikicatala=re.compile("(?<=\[\[ca:)[^|\]]+")
page = wikipedia.Page( wikipedia.getSite(idioma,"wikipedia"), titol)
try:
# Carrega la pàgina
contingut = page.get(get_redirect = True)
except wikipedia.NoPage:
# L'enllaç en l'idioma original no existeix
return ''
enllaccatala=interwikicatala.search(contingut)
if enllaccatala:
enllacara=enllaccatala.group(0)
#posar la primera lletra en minúscules si l'enllaç original la tenia.
if titol[0]==titol[0].lower():
enllacara=enllacara[0].lower()+enllacara[1:]
return enllacara
else:
#A l'article en lidioma original no hi ha interwiki al català
return ''
def tradueixenllacos(idioma,text,text_desti,paginadesti):
noutext = text
noutext_desti = text_desti
#Prepara expressions regulars
'''
* p : és una expressió regular per trobar enllaços interns comença per dos claudators,
segueix per una cadena de qualsevol caracter sense sense : per evitar agafar imatges,
categories i interwikis i acaba amb dos claudators es posa el ? per evitar que empalmi dos
enllaços interns diferents
* parentesis i tancaparentesis : per cercar parèntesis
* cerca : per agafar la cadena amb el nom de l'article eliminant els claudators, el | i el #
'''
p = re.compile('(\[\[[^:]*?]])')
parentesis=re.compile("[\(]")
tancaparentesis=re.compile("[\)]")
cerca=re.compile("[^[#|\]]+")
#Trobar tots els elnllaços interns de la pagina a traduir
enllacos=p.findall(text)
maxim = len(enllacos)
#Trobar tots els elnllaços interns de la pagina destí
enllacos_desti=p.findall(text_desti)
maxim_desti = len(enllacos_desti)
#Intenta traduir cada un dels enllaços
i=0
while i < maxim:
print u'Enllaços fets:', i, 'de:', maxim
#Li treu els claudators i el | es queda amb el nom de l'article
enllac=cerca.search(enllacos[i])
enllac_desti=cerca.search(enllacos_desti[i])
wikipedia.output(enllacos[i])
i=i+1
llegir=enllac.group(0)
llegir_desti=enllac_desti.group(0)
enllacara = titol_catala(idioma,llegir)
if enllacara != '' :
llegir_desti = parentesis.sub(r'[\\(]',llegir_desti)
llegir_desti = tancaparentesis.sub(r'[\\)]',llegir_desti)
canviar=re.compile("(?<=\[\[)"+llegir_desti)
#Substitueix el nom de l'artice enllçat en l'altre idioma pel nom en català
noutext_desti = canviar.sub(enllacara,noutext_desti)
#Grava la pàgina modificada (es pot eliminar quent vagi be el programa
paginadesti.put(noutext_desti,u'bot traduint automaticament enllaços internes')
return noutext_desti
def tradueixplantilles(idioma,text,text_desti,paginadesti):
#PENDENT DE FER QUE TAMBÉ AGAFI PLENTILLES AMB SALTS DE LÍNIA AL INTERIOR
noutext = text
noutext_desti = text_desti
#Llegeix la pàgina amb el tractament de les plantilles
paginatractament = wikipedia.Page( wikipedia.getSite('ca',"wikipedia"), 'Usuari:Jrgoma/Plantilles/'+idioma)
tractament = paginatractament.get()
#Prepara expressions regulars
'''
p és una expressió regular per trobar plantilles
q és una ER per trobar el nom de la plantilla
r per trobar les variables
s per separar el nom i el valor de cada variable
t per trobar les instruccions de traducció de plantilles
u per trobar les instruccions de cada variable de la plantilla
v per trobar el títol de la plantilla en les instruccions de traducció
w per trobar la traducció del títol de la plantilla
t1 per treure els | entre claudat de dins de les plantilles es substiuiran per {{ segur que no hi és dins
t2 per tornar a posar els | entra claudatos es cerca els {{
'''
p = re.compile('{{.+?}}')
q = re.compile('(?<={{).+?(?= *[\|}])')
r = re.compile('(?<=\|).+?(?=[\|}])')
s = re.compile('.+(?=[=])|(?<=[=]).+')
t = re.compile('[^)]+\)')
u = re.compile('(?<=[\*][\*])[^\*]*?(?=[\n\)])')
v = re.compile('(?<=\*\*\*).*?(?=\n)')
w = re.compile('(?<=\().*?(?=[\n\)])')
t1 = re.compile('(\[\[.*?)\|(.*\]\])')
t2 = re.compile('(\[\[.*?){{(.*\]\])')
#cadena i cadena2 per funconar amb t1 i t2
cadena='\\1{{\\2'
cadena2='\\1|\\2'
#Trobar totes les plantilles de la pagina a traduir
plantilles=p.findall(text)
maxim = len(plantilles)
#Trobar totes les plantilles de la pagina destí
plantilles_desti=p.findall(text_desti)
maxim_desti = len(plantilles_desti)
#Trobar totes les instruccions de tractament
instruccions=t.findall(tractament)
maxim_instruccions = len(instruccions)
'''
Crear diccionaris a partir de les instruccions
* traduccio_titol, és un diccionari que a cada títol de plantilla li asigna la seva traducció
* traducció_variable, és un diccionari de diccionaris, a cada títol de plantilla li assigna el
diccionari de traducció de noms de variables (aquest a cada nom li assigna la seva traducció)
* traduccio_tractament, altre diccionari de diccionaris, a cada títol de plantilla li assigna e
un diccionri que a cada nom de variable li assigna el tipus de tractament que s'ha de donar al
valor de la variable.
'''
traduccio_titol = {}
traduccio_variable = {}
tractament_variable = {}
i=0
while i < maxim_instruccions:
#Trobar el títol
titol = v.findall(instruccions[i])[0]
#afegir al diccionari la traducció del títol
traduccio_titol[titol] = w.findall(instruccions[i])[0]
#trobar totes les instruccions de cada variable
variables = u.findall(instruccions[i])
maxim_variables = len(variables)
#Crear diccionaris amb la traducció i el tractament de cada variable dins la plantilla
j = 1
diccionari_traduccio = {}
diccionari_tractament = {}
contavariables = 1
while j+2 < maxim_variables:
nomvariable = variables[j]
if nomvariable == '':
nomvariable = contavariables
contavariables = contavariables +1
diccionari_traduccio[nomvariable] = variables[j+1]
diccionari_tractament[nomvariable] = variables[j+2]
j = j+3
#afegir aquests diccionaris als diccionaris de diccionaris
traduccio_variable[titol] = diccionari_traduccio
tractament_variable[titol] = diccionari_tractament
i = i+1
#Intenta traduir cada una de les plantilles
i=0
while i < maxim:
print u'Plantilles fetes', i, 'de:', maxim
plantilla = plantilles[i]
plantilla_desti = plantilles_desti[i]
#treu | entre claudators de plantilla i de plantilladesti
plantilla = t1.sub(cadena, plantilla)
plantilla_desti = t1.sub(cadena, plantilla_desti)
#cerca el nom de la plantilla a traduir
nomplantilla = q.findall(plantilla)[0]
nomplantilla = nomplantilla[0].upper()+nomplantilla[1:]
#compila expressio regular de la plantilla desti per podrla substituir
pre_er_plantilla_desti = plantilles_desti[i]
# substituir "metacaracter" per \"metacaracter"
#barres = re.compile('([\^\$\*\+\?\{\}\[\]\|\(\)])')
barres = re.compile('([\|\.\^\$\*\+\?\{\}\[\]\(\)])')
pre_er_plantilla_desti = barres.sub('\\\\\\1',pre_er_plantilla_desti)
er_plantilla_desti = re.compile(pre_er_plantilla_desti)
#si la plantilla no té instruccions per traduir-la deixa la original i continua
if not(nomplantilla in traduccio_titol):
noutext_desti = er_plantilla_desti.sub(plantilles[i],noutext_desti)
i = i+1
continue
#tradueix el títol de la plantilla
plantilla_traduida = '{{'+traduccio_titol[nomplantilla]
#tradueix i tracta les variables
#troba les variables
variables = r.findall(plantilla)
variables_desti = r.findall(plantilla_desti)
maxim_variables = len(variables)
j = 0
contavariables = 1
while j < maxim_variables:
variable = variables[j]
variable_desti = variables_desti[j]
#separa nom i valor
dades_variable = s.findall(variable)
dades_variable_desti = s.findall(variable_desti)
if len(dades_variable)>0:
nom_variable = dades_variable[0]
#elimina espais an blanc al començament del nom
while nom_variable[0] == ' ':
nom_variable = nom_variable[1:]
valor_variable = dades_variable[1]
valor_variable_desti = dades_variable_desti[1]
#vigilar si no esta definida la variable
if nom_variable in traduccio_variable[nomplantilla]:
plantilla_traduida = plantilla_traduida + '|'+traduccio_variable[nomplantilla][nom_variable] +' = '
else:
plantilla_traduida = plantilla_traduida + '|'+nom_variable +' = '
else:
valor_variable = variable
valor_variable_desti = variable_desti
nom_variable = contavariables
contavariables = contavariables + 1
plantilla_traduida = plantilla_traduida + '|'
#vigilar si no esta definida la variable
if nom_variable in tractament_variable[nomplantilla]:
tractament = tractament_variable[nomplantilla][nom_variable]
else:
tractament = 'N'
if tractament == 'N':
plantilla_traduida = plantilla_traduida + valor_variable
elif tractament == 'S':
plantilla_traduida = plantilla_traduida + valor_variable_desti
elif tractament == 'TEI':
titol = titol_catala(idioma,valor_variable)
if titol == '':
plantilla_traduida = plantilla_traduida + valor_variable_desti
else:
plantilla_traduida = plantilla_traduida + titol
j = j+1
i = i+1
#tanca la plantilla amb }}
plantilla_traduida = plantilla_traduida + '}}'
#torna a posar els | en lloc dels {{ entre claudators
plantilla_traduida = t2.sub(cadena2, plantilla_traduida)
#substitueix la plantilla per la seva traducció
noutext_desti = er_plantilla_desti.sub(plantilla_traduida,noutext_desti)
#Grava la pàgina modificada
paginadesti.put(noutext_desti,u'bot traduint automaticament plantilles')
return noutext_desti
def intercala(idioma,text,text_desti,paginadesti,pagina_original):
#p és una expressió regular per trobar els salts de línia
p = re.compile('.*?\n')
#Trobar tots els parragrafs de la pagina orignal
parragraforiginal=p.findall(text)
maxim = len(parragraforiginal)
#Trobar tots els parragrafs de la pagina traduida
parragraftraduida=p.findall(text_desti)
maxim_desti = len(parragraftraduida)
print maxim, maxim_desti
#Intercala els parragrafs de la pàgina traduida i la pàgina original
i=0
j=0
resultat=''
while i < maxim:
if j < maxim_desti:
#Per saltar pàrragrafs sense text indrouits a la ptraducció autmàtica
# while len(parragraforiginal[i])/2>len(parragraftraduida[j]) and j+1 < maxim_desti:
# j=j+1
resultat=resultat+parragraforiginal[i]+'\n'+parragraftraduida[j]+'\n'
else:
resultat=resultat+parragraforiginal[i]
i=i+1
j=j+1
#posa plantilla de traducció i interwiki al idioma original
plantilla = u'{{Traducció|' + idioma + '|' + pagina_original + '}}\n'
interwiki = '[[' + idioma + ':' + pagina original + ']]'
resultat = plantilla + resultat + interwiki
#Grava la pàgina modificada
paginadesti.put(resultat,u'bot intercalant text original amb text traduït')
return resultat
def preprocessa(text,pagina):
noutext = executa_er("Usuari:Jrgoma/Pre", text)
#Grava la pàgina modificada
pagina.put(noutext,u'bot preprocessant article previ a la traduccioo automatica')
return noutext
def arreglatraduccio(text,pagina_er,pagina):
noutext = text
if pagina_er != '':
noutext = executa_er(pagina_er, text)
#Grava la pàgina modificada
pagina.put(noutext,u'bot arreglant traducció automàtica amb les er de [['+ pagina er +']]')
return noutext
def trobaparametres(pagina):
#trobal els paràmetres de la plantilla de la pàgina i llegeix la pàgina a traduir
global idioma, pagina_er, usuari, pagina_origen, pagina_original, titol_de_la_pagina
plantilla = re.compile('(?<=\[\[)Usuari Discu.*(?=\|)')
parametres = pagina.templatesWithParams()
if len(parametres) == 0:
#No hi ha plantilla, algú ha posat aquesta categoria a un article sense posar la plantilla
categoria = re.compile(u'.*[[.*Categoria:.*Peticions de.*traducci. autom.tica.*]].*')
text = pagina.get()
text = categoria.sub('',text)
pagina.put(text, u'bot el·lininant la categoria de petició de traduccuó: manca de plantilla')
return 'no hi ha plantilla'
idioma = parametres [0][1][0]
pagina_original = parametres [0][1][1]
pagina_er = ''
usuari = ''
if len(parametres [0][1])>3:
pagina_er = parametres [0][1][2]
usuari_avisa = plantilla.findall(parametres [0][1][3])
if len(usuari_avisa) > 0:
usuari = usuari_avisa[0]
else:
usuari = usuari_avisa
pagina_2 = wikipedia.Page( wikipedia.getSite(idioma,"wikipedia"), pagina_original)
try:
pagina_origen = pagina_2.get()
except wikipedia.NoPage:
#La pàgina no existeix
#treure la plantilla
text = pagina.get()
plantilla2 = re.compile('{{.*[Pp]etici. de traducci..*}}')
text = plantilla2.sub('', text)
avisar_usuari('no hi ha pagina origen', titol_de_la_pagina)
pagina.put(text, u'bot el·lininant la plantilla de petició de traduccuó: manca pàgina en idioma original')
return 'no hi ha pagina origen'
def avisar_usuari(missatge, titol_de_la_pagina):
#deixa un missatge a la pàgina de discussió del usuari informant del proces de les seves peticions
global idioma, pagina_er, usuari, pagina_origen, pagina_original
if missatge == 'traductor_down':
resultat = u" no s'ha pogut completar degut a que en aquest moment el traductor automàtic no està disponible, es tornarà a intentar més tard. Si voleu podeu traduir-la amb un altre traductor automàtic i canviar la plantilla a 'Petició de tradució b' llavors el robot amical-bot continuarà el postprocés."
elif missatge == 'preproces fet':
resultat = u" s'ha preprocessat. Heu d'emprar un traductor automatic extern per traduir-lo del {{" + idioma + u"}} donat que el traductor intern no el té incorporat, en acabar canvieu la plantilla a 'Petició de tradució b' llavors el robot amical-bot continuarà el postprocés."
elif missatge == 'fet':
resultat = u" s'ha completat amb èxit."
elif missatge == 'no hi ha pagina origen':
resultat = u" no es pot fer degut a que no existeix la pàgina sol·licitada en l'idioma origen."
missatge = u"\n== Petició de traducció ==\nLa vostra petició de traducció de l'article [[" + titol de la pagina + "]]" + resultat
pagina = wikipedia.Page( wikipedia.getSite('ca',"wikipedia"), usuari)
pagina_discusio = pagina.get()+missatge
pagina.put(pagina_discusio,u'bot enviant missatge sobre petició de traducció automàtica')
def despresdetraduccioautomatica(traduit,pagina, titol_de_la_pagina):
#acaba la feina despres de la acció d'un traductor automatic
postprocessat = postprocessa(traduit,pagina)
enllactraduit = tradueixenllacos(idioma,pagina_origen,postprocessat,pagina)
plantillatraduida = tradueixplantilles(idioma,pagina_origen,enllactraduit,pagina)
traduccioarreglada = arreglatraduccio(plantillatraduida,pagina_er,pagina)
intercala(idioma,pagina_origen,traduccioarreglada,pagina,pagina_original)
avisar_usuari('fet', titol_de_la_pagina)
def buidarpeticionsnoves():
global idioma, pagina_er, usuari, pagina_origen, pagina_original, titol_de_la_pagina
#tradueix les pàgines de la categoria "Peticions de còpia i preprocés per traducció automàtica" si gencat esta down les preprocessa i la
#passa a la categoria "Peticions de traducció automàtica" canviant la plantilla
projecte = wikipedia.getSite()
cat = catlib.Category(projecte, u"Categoria:Peticions de còpia i preprocés per traducció automàtica")
pagines = cat.articles()
for pagina in pagines:
titol_de_la_pagina = pagina.title()
if titol_de_la_pagina == u'Plantilla:Petició de traducció' or titol_de_la_pagina == u'Plantilla:Petició de traducció/ús' :
continue
resultat = trobaparametres(pagina)
if resultat == 'no hi ha plantilla' or resultat == 'no hi ha pagina origen':
continue
#copia la pàgina original sobre la actual, va be per poder veure la diferencia amb el preprocessat
pagina.put(pagina_origen,u"bot copiant article de {{"+idioma+"}}[[W:"+idioma+":"+pagina_original+"]]")
preprocessada = preprocessa(pagina_origen,pagina)
traduitgencat = getURL(titol_de_la_pagina, idioma)
if traduitgencat == 'idioma no suportat':
# No s'ha traduit perquè l'idioma no està suportat, canviar plantilla a "a"
plantilla = u"{{ Petició de traducció a|" + idioma + "|" + pagina_original + "|" + pagina_er + "| [[" + usuari + "]] }}"
preprocessada = plantilla + treuprimeraplantilla(preprocessada)
pagina.put(preprocessada,u"bot canviant plantilla, preprocés fet")
avisar_usuari('preproces fet',titol_de_la_pagina)
continue
if traduitgencat != '':
pagina.put(traduitgencat,u"bot traduint article al català")
despresdetraduccioautomatica(traduitgencat,pagina, titol_de_la_pagina)
else:
#No s'ha traduït perquè el traductor està fora de servei canviar plantilla a "b"
plantilla = u"{{ Petició de traducció b|" + idioma + "|" + pagina_original + "|" + pagina_er + "| [[" + usuari + "]] }}"
preprocessada = plantilla + treuprimeraplantilla(preprocessada)
pagina.put(preprocessada,u"bot canviant plantilla per interrupció del servei de traducció")
avisar_usuari('traductor_down',titol_de_la_pagina)
continue
def treuprimeraplantilla(text):
#treu la plantilla de petició de traducció i només deixa el que hi ha al darrete
p = re.compile(r"{{.*Petici. de traducci.*}}.*\n")
text = p.sub('', text)
wikipedia.output(text)
return text
def buidarpeticionsinterrompudes():
#Torna a intentar la traducció amb gencat i acabar el procés de les pàgines a la categoria: "Peticions de traducció automàtica"
global idioma, pagina_er, usuari, pagina_origen, pagina_original
projecte = wikipedia.getSite()
cat = catlib.Category(projecte, u"Categoria:Peticions de traducció automàtica")
pagines = cat.articles()
for pagina in pagines:
titol_de_la_pagina =pagina.title()
if titol_de_la_pagina == u'Plantilla:Petició de traducció b' or titol_de_la_pagina == u'Plantilla:Petició de traducció b/ús' :
continue
resultat = trobaparametres(pagina)
if resultat == 'no hi ha plantilla' or resultat == 'no hi ha pagina origen':
continue
#Per si s'ha modificat la pàgina al idioma original convindria llegir la còpia que es va gravar o lligar-ho a una verssió fixa.
traduitgencat = getURL(titol_de_la_pagina, idioma)
if traduitgencat != '':
traduitgencat = treuprimeraplantilla(traduitgencat)
pagina.put(traduitgencat,u"bot traduint article al català")
despresdetraduccioautomatica(traduitgencat,pagina,titol_de_la_pagina)
def buidarpeticionspendentspostproces():
#Acaba el postprocés de les pàgines a la categoria: "Peticions de postprocés després d'una traducció automàtica"
#És el cas que l'usuari hagi emprat un traductor automatic alternatiu i hagi canviat la plantilla a "c"
global idioma, pagina_er, usuari, pagina_origen, pagina_original
projecte = wikipedia.getSite()
cat = catlib.Category(projecte, u"Categoria:Peticions de postprocés després d'una traducció automàtica")
pagines = cat.articles()
for pagina in pagines:
titol_de_la_pagina =pagina.title()
if titol_de_la_pagina == u'Plantilla:Petició de traducció c' or titol_de_la_pagina == u'Plantilla:Petició de traducció c/ús' :
continue
resultat = trobaparametres(pagina)
if resultat == 'no hi ha plantilla' or resultat == 'no hi ha pagina origen':
continue
traduit = pagina.get()
traduit = treuprimeraplantilla(traduit)
#Per si s'ha modificat la pàgina al idioma original convindria llegir la còpia que es va gravar o lligar-ho a una verssió fixa.
despresdetraduccioautomatica(traduit, pagina, titol_de_la_pagina)
def principal():
while 1==1:
buidarpeticionsnoves()
buidarpeticionsinterrompudes()
buidarpeticionspendentspostproces()
time.sleep(60)
principal()