# -*- coding: utf-8 -*-
import wikipedia,re,time
mes={ "ene":1,
"feb":2,
"mar":3,
"abr":4,
"may":5,
"jun":6,
"jul":7,
"ago":8,
"sep":9,
"oct":10,
"nov":11,
"dic":12,
}
i_mes={ 1:"ene",
2:"feb",
3:"mar",
4:"abr",
5:"may",
6:"jun",
7:"jul",
8:"ago",
9:"sep",
10:"oct",
11:"nov",
12:"dic",
}
base_cafe=u"Wikipedia:Café/Portal/Archivo/"
base_prueba=u"Usuario:Yrithinnd/Café/Archivo/"
cafes=[[u"Noticias",20,30],[u"Políticas",10,20],[u"Técnica",15,25],[u"Propuestas",10,20],[u"Ayuda",7,15],[u"Miscelánea",10,20]]
for wop in cafes:
cafe=wop[0]
p=wikipedia.Page(wikipedia.getSite(),base_cafe+cafe+"/Actual")
texto=p.get()
salida=texto
it=re.finditer(ur"(?us)(?P<seccion>\s==(?P<titulo>[^=]+?)==\s(?P<texto>.*?))(?=\s==[^=]+?==)",texto)
i=0
for m in it:
i+=1
menor=2147483647
mayor=0
ediciones=0
comentario=u""
print str(i)+") Titulo:"+m.group("titulo")
it2=re.finditer(ur"(?P<hor>\d{2}):(?P<min>\d{2}) (?P<dia>\d{1,2}) (?P<mes>ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic) (?P<ano>20\d\d) \((?:CES?T|UTC)\)",m.group("texto"))
for m2 in it2:
#print m2.group("dia")+"-"+m2.group("mes")+"-"+m2.group("ano")+" "+m2.group("hor")+":"+m2.group("min")
epo_time=int(time.mktime((int(m2.group("ano")),int(mes[m2.group("mes")]),int(m2.group("dia")),int(m2.group("hor")),int(m2.group("min")),0,0,0,1)))
if mayor<epo_time:
mayor=epo_time
if menor>epo_time:
menor=epo_time
ediciones+=1
print "PRIMER MENSAJE: " + str(menor) + " - " +time.strftime("%x-%X",time.localtime(menor))
print "ULTIMO MENSAJE: " + str(mayor) + " - " +time.strftime("%x-%X",time.localtime(mayor))
if ediciones <wop[1]:
dias=wop[1]
elif ediciones>wop[2]:
dias=wop[2]
else:
dias=ediciones
if mayor<int(time.time())-(86400*dias) and mayor>0: #10 días
print " # ARCHIVO # "
ano_seccion=time.strftime("%Y",time.localtime(menor))
mes_seccion=time.strftime("%m",time.localtime(menor))
ap=wikipedia.Page(wikipedia.getSite(),base_cafe+cafe+"/"+ano_seccion+"/"+mes_seccion)
comentario=u"Archivando sección: "+m.group("titulo")+u" - Primera edición: "+time.strftime("%x-%X",time.localtime(menor))+u" - Última edición: "+time.strftime("%x-%X",time.localtime(mayor))+u" - Archivado por cumplir: "+str(dias)+u" días de inactividad"
if ap.exists():
tmp=ap.get()
ap.put(tmp+"\n"+m.group("seccion"),comment=comentario)
else:
ap.put(u"{{Café frío|"+str(ano_seccion)+"|"+cafe+"}}\n"+m.group("seccion"),comment="< CREO ARCHIVO >"+comentario)
salida=salida.replace(m.group("seccion"),"")
ap=wikipedia.Page(wikipedia.getSite(),base_cafe+cafe+"/Actual")
ap.put(salida,comment=comentario)
if mayor == 0:
print " ---> Marca de agua"
salida=salida.replace(m.group("seccion"),m.group("seccion")+u"\n<!-- "+time.strftime("%H:%M %d ")+i_mes[int(time.strftime("%m"))]+time.strftime(" %Y (%Z)")+u" Marca de tiempo para esta sección. NO ELIMINE ESTA LÍNEA-->\n")
ap=wikipedia.Page(wikipedia.getSite(),base_cafe+cafe+"/Actual")
ap.put(salida,comment=u"Añadiendo marca de tiempo")