[cpif] r33 - trunk
svn at argo.es
svn at argo.es
Wed May 9 17:38:25 CEST 2007
Author: jcea
Date: Wed May 9 17:38:23 2007
New Revision: 33
Log:
Afinamos un poco más la demo...
Modified:
trunk/TODO
trunk/database.py
trunk/demo_web.py
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Wed May 9 17:38:23 2007
@@ -10,3 +10,9 @@
- 20070426: Compatibilidad Windows de mi backend para Durus.
+- 20070509: Ahora que en vez de grabar el ultimo mensaje leido
+ grabamos el primero no visto, la velocidad de calcular los
+ hilos no leidos de un usuario se ha reducido a la mitad.
+ No me preocupo mucho porque eso hay que refactorizarlo
+ en el futuro, pero dejo nota para que no se nos olvide.
+
Modified: trunk/database.py
==============================================================================
--- trunk/database.py (original)
+++ trunk/database.py Wed May 9 17:38:23 2007
@@ -1,7 +1,7 @@
# $Id$
-VERSION_DB="2007050301"
+VERSION_DB="2007050901"
def normaliza_nick(nick) :
@@ -138,13 +138,15 @@
posicion_hilos=usuario["punto de lectura"]
last_msg2hilo=root["seguimiento_no_leidos"]["last_msg2hilo"]
+ hilos=root["hilos"]["hilos"]
for last,hilo in last_msg2hilo.items_from(l,closed=False) :
# Vemos cual es el ultimo leido para ese hilo
ultimo=posicion_hilos.get(hilo) # Esta es la optimizacion de hilos que todo el mundo ha leido ya...
if not ultimo : ultimo=punto_de_lectura_global[hilo]
if ultimo < last : # Este hilo tiene mensajes nuevos...
- posicion_hilos_no_leidos[hilo]=ultimo # Lo marcamos como pendiente de leer y nos vamos al ultimo que hemos leido
+ # Lo marcamos como pendiente de leer y nos vamos al primero no leido
+ posicion_hilos_no_leidos[hilo]=hilos[hilo]["mensajes"].items_from(ultimo,closed=False).next()[0]
usuario["ultimo mensaje conocido"]=root["mensajes"]["num_mensajes"]
def listado_hilos_personal(conn,usuario) :
Modified: trunk/demo_web.py
==============================================================================
--- trunk/demo_web.py (original)
+++ trunk/demo_web.py Wed May 9 17:38:23 2007
@@ -15,7 +15,7 @@
ctype,pdict=cgi.parse_header(self.headers.getheader('content-type'))
cuerpo=cgi.FieldStorage(fp=self.rfile,headers=self.headers,environ={'REQUEST_METHOD':'POST'},keep_blank_values=1)
texto=cuerpo.getfirst("texto")
- texto=texto.replace("\r","").replace("\n","\r\n")
+ texto=texto.replace("\r","").replace("\n","<br>\r\n")
import database
database.mensaje_add(conn,texto,usuario,hilo=hilo)
return (200,"text/html",
@@ -73,19 +73,21 @@
@monitor
def gestion_pagina_principal(conn,self,path) :
import time,database
- hilos=conn.get_root()["hilos"]["hilos"]
+ root=conn.get_root()
+ hilos=root["hilos"]["hilos"]
usuario=path[-1]
database.actualiza_no_leidos(conn,usuario)
h=database.listado_hilos_personal(conn,usuario)
texto=[]
estilos=["impar","par"]
+ punto_no_leido=root["usuarios"]["usuarios"][database.normaliza_nick(usuario)]["punto de lectura no leidos"]
for hilo,titulo,last_msg,no_leido in h :
estilo=estilos.pop(0)
estilos.append(estilo)
ts_creacion=time.ctime(hilos[hilo]["TS"])
if no_leido :
texto.append("<div class='%s'><a href='/hilo/%d/%s'>%s</a> <font size=-2>(%s)</font> - <a href='/hilo/%d/%s#%d'>No leido</a></div>"
- %(estilo,hilo,usuario,titulo,ts_creacion,hilo,usuario,last_msg))
+ %(estilo,hilo,usuario,titulo,ts_creacion,hilo,usuario,punto_no_leido[hilo]))
else :
texto.append("<div class='%s'><a href='/hilo/%d/%s'>%s</a> <font size=-2>(%s)</font></div>" %(estilo,hilo,usuario,titulo,ts_creacion))
return(200,"text/html",
@@ -117,7 +119,7 @@
cuerpo=cgi.FieldStorage(fp=self.rfile,headers=self.headers,environ={'REQUEST_METHOD':'POST'},keep_blank_values=1)
titulo=cuerpo.getfirst("titulo")
texto=cuerpo.getfirst("texto")
- texto=texto.replace("\r","").replace("\n","\r\n")
+ texto=texto.replace("\r","").replace("\n","<br>\r\n")
import database
database.mensaje_add(conn,texto,usuario,titulo=titulo)
return (200,"text/html",
More information about the cpif
mailing list