[cpif] r254 - trunk/backend

svn at argo.es svn at argo.es
Tue Jul 10 12:35:52 CEST 2007


Author: jcea
Date: Tue Jul 10 12:35:51 2007
New Revision: 254

Log:
Evitamos escrituras espureas en el sistema
de persistencia, innecesarias.



Modified:
   trunk/backend/database.py

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Tue Jul 10 12:35:51 2007
@@ -345,16 +345,18 @@
 
 def actualiza_no_leidos(conn,usuario) :
   root=conn.get_root()
+  global_last=root["mensajes"]["num_mensajes"]
   if not usuario : # Acceso anonimo. Nos encargamos de que nada salga como "no leido"
     usuario=root["usuarios"]["usuarios"][usuario]
-    last=root["mensajes"]["num_mensajes"]
-    if usuario["ultimo mensaje conocido"]!=last :
-      usuario["ultimo mensaje conocido"]=last
+    if usuario["ultimo mensaje conocido"]!=global_last :
+      usuario["ultimo mensaje conocido"]=global_last
     return
 
-  punto_de_lectura_global=root["punto_de_lectura_global"]
   usuario=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
   l=usuario["ultimo mensaje conocido"]
+  if l==global_last : return   # No hay nada nuevo
+
+  punto_de_lectura_global=root["punto_de_lectura_global"]
   posicion_hilos_no_leidos=dict(usuario["punto de lectura no leidos"])
   posicion_hilos=usuario["punto de lectura"]
 
@@ -371,7 +373,7 @@
       ultimo=h["mensajes"].items_from(ultimo,closed=False).next()[0]
       for metatag in h["metatags"] :
         posicion_hilos_no_leidos[metatag][hilo]=ultimo
-  usuario["ultimo mensaje conocido"]=root["mensajes"]["num_mensajes"]
+  usuario["ultimo mensaje conocido"]=global_last
 
 def listado_hilos_personal(conn,usuario,ts,ts2,metatag) :
   root=conn.get_root()



More information about the cpif mailing list