[cpif] r99 - trunk/backend

svn at argo.es svn at argo.es
Thu May 24 18:29:33 CEST 2007


Author: jcea
Date: Thu May 24 18:29:32 2007
New Revision: 99

Log:


Added:
   trunk/backend/upgrade.py
      - copied, changed from r97, /trunk/backend/migracion.py
Removed:
   trunk/backend/migracion.py
Modified:
   trunk/backend/database.py

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Thu May 24 18:29:32 2007
@@ -3,6 +3,8 @@
 
 VERSION_DB="2007052401"
 
+from globales import thread_len
+
 
 def normaliza_nick(nick) :
   return nick.lower()
@@ -220,10 +222,10 @@
 
   return resultado
 
-def listado_hilo(conn,usuario,hilo_num) :
+def listado_hilo(conn,usuario,hilo_num,primer_mensaje=1) :
   root=conn.get_root()
   hilo=root["hilos"]["hilos"].get(hilo_num,None)
-  if not hilo : return None,None
+  if not hilo : return None,None,None
 
   meta={"titulo":hilo["titulo"],"creador":hilo["creador"],
         "TS creacion":hilo["TS creacion"]}
@@ -233,9 +235,17 @@
     del u["punto de lectura no leidos"][hilo_num]
   u["punto de lectura"][hilo_num]=hilo["mensajes"].get_max_item()[0]
 
-  mensajes=[(msg_num,msg["autor"],msg["TS"],msg["texto"]) for msg_num,msg in hilo["mensajes"].items()]
+  mensajes=[]
+  i=thread_len
+  pr=hilo["numeros"].get(primer_mensaje,None)
+  if not pr : return None,None,None
+  for msg_num,msg in hilo["mensajes"].items_from(pr) :
+    msg=msg[1]
+    mensajes.append((msg_num,msg["autor"],msg["TS"],msg["texto"]))
+    i-=1
+    if not i : break
 
-  return (meta,mensajes)
+  return (meta,mensajes,primer_mensaje+thread_len>hilo["num_mensajes"])
 
 # Marcamos como leidos los hilos que estamos
 # viendo en pantalla. Si hay mensajes adicionales

Copied: trunk/backend/upgrade.py (from r97, /trunk/backend/migracion.py)
==============================================================================
--- /trunk/backend/migracion.py	(original)
+++ trunk/backend/upgrade.py	Thu May 24 18:29:32 2007
@@ -8,9 +8,12 @@
   if root["version del foro"]=="2007051901" :
     print "Actualizando la base de datos: 2007051901 -> 2007052401"
     root["version del foro"]="2007052401"
-    for i in root["hilos"]["hilos"] :
+    for i in root["hilos"]["hilos"].itervalues() :
       i["numeros"]=BTree()
-      
-    conn.abort()  
+      n=1
+      for j,k in i["mensajes"].items() : # Carga todo el hilo en memoria antes de actualizarlo
+        i["numeros"][n]=j
+        i["mensajes"][j]=(n,k)
+        n+=1
     conn.commit()
 



More information about the cpif mailing list