[cpif] r41 - in trunk: backend frontend-web
svn at argo.es
svn at argo.es
Fri May 11 17:32:36 CEST 2007
Author: jcea
Date: Fri May 11 17:32:35 2007
New Revision: 41
Log:
Modified:
trunk/backend/database.py
trunk/frontend-web/init.py
trunk/frontend-web/servidor_web.py
Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py (original)
+++ trunk/backend/database.py Fri May 11 17:32:35 2007
@@ -1,7 +1,7 @@
# $Id$
-VERSION_DB="2007050901"
+VERSION_DB="2007051101"
def normaliza_nick(nick) :
@@ -66,7 +66,8 @@
"TS ultima entrada":0,
"num mensajes":0,
"mensajes":BTree(),
- "datos":datos})
+ "datos":datos,
+ "nick":nick})
def usuario_get(conn,nick) :
root=conn.get_root()
Modified: trunk/frontend-web/init.py
==============================================================================
--- trunk/frontend-web/init.py (original)
+++ trunk/frontend-web/init.py Fri May 11 17:32:35 2007
@@ -1,5 +1,7 @@
# $Id$
+"""Inicializacion del frontend web"""
+
def main() :
import globales
Modified: trunk/frontend-web/servidor_web.py
==============================================================================
--- trunk/frontend-web/servidor_web.py (original)
+++ trunk/frontend-web/servidor_web.py Fri May 11 17:32:35 2007
@@ -9,10 +9,9 @@
must_stop=False
@monitor
- def gestion_nuevo_post_POST(conn,self,path) :
+ def gestion_nuevo_post_POST(conn,self,path,usuario) :
import database
- usuario=path[-1]
- hilo=int(path[-2])
+ hilo=int(path[-1])
import cgi
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)
@@ -20,20 +19,13 @@
texto=texto.replace("\r","").replace("\n","<br>\r\n")
import database
database.mensaje_add(conn,texto,usuario,hilo=hilo)
- return (200,"text/html",
-"""
-<html><head></head><body>
-<h1>Mensaje publicado</h1>
-<p><a href="/pagina_principal/%s">Página principal</a>
-<p><a href="/stop">Parar la demo</a>
-</body></html>""" %(usuario))
+ return (302,"/%s" %(usuario), "")
@monitor
- def gestion_hilo(conn,self,path) :
+ def gestion_hilo(conn,self,path,usuario) :
import time,database
- usuario=path[-1]
root=conn.get_root()
- hilo_num=int(path[-2])
+ hilo_num=int(path[-1])
hilo=root["hilos"]["hilos"][hilo_num]
texto=["<h2>Hilo: %s (%s)</h2>" %(hilo["titulo"],hilo["creador"])]
texto.extend(["<font size=-2>%s</font>" %time.ctime(hilo["TS creacion"]),"<hr>"])
@@ -61,7 +53,7 @@
%s
<hr>
-<p><a href="/pagina_principal/%s">Página principal</a>
+<p><a href="/%s">Página principal</a>
<p><form action="/nuevo_post_POST/%s/%s" method="post" enctype="multipart/form-data">
<table>
<tr><td>Texto:</td><td><br><textarea name="texto" rows="10" cols="60"></textarea></td></tr>
@@ -73,11 +65,10 @@
@monitor
- def gestion_pagina_principal(conn,self,path) :
+ def gestion_(conn,self,path,usuario) :
import time,database
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=[]
@@ -114,8 +105,7 @@
</body></html>""" %("\r\n".join(texto),usuario))
@monitor
- def gestion_nuevo_hilo_POST(conn,self,path) :
- usuario=path[-1]
+ def gestion_nuevo_hilo_POST(conn,self,path,usuario) :
import cgi
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)
@@ -124,16 +114,9 @@
texto=texto.replace("\r","").replace("\n","<br>\r\n")
import database
database.mensaje_add(conn,texto,usuario,titulo=titulo)
- return (200,"text/html",
-"""
-<html><head></head><body>
-<h1>Hilo publicado</h1>
-<p><a href="/pagina_principal/%s">Página principal</a>
-<p><a href="/stop">Parar la demo</a>
-</body></html>""" %(usuario))
+ return (302,"/%s" %usuario,"")
-
- def gestion_stop(self,path) :
+ def gestion_stop(self,path,usuario) :
self.must_stop=True
return (200,"text/html",
"""
@@ -141,36 +124,35 @@
<h1>PARAMOS EL SERVICIO!!</h1>
</body></html>""")
- def gestion_(self,path) :
+ @monitor
+ def elige_usuario(conn,self) :
+ usuarios=[i["nick"] for i in conn.get_root()["usuarios"]["usuarios"].values()]
+ texto=["<p><li><a href='/%s'>%s</a>" %(i,i) for i in usuarios]
+
return (200,"text/html",
"""
<html><head></head>
<body><h1>Elige el usuario</h1>
<ul>
-<p><li><a href="/elige/Usuario1">Usuario 1</a>
-<p><li><a href="/elige/Usuario2">Usuario 2</a>
+%s
</ul>
<p><a href="/stop">Parar la demo</a>
-</body></html>""")
-
- def gestion_elige(self,path) :
- usuario=path[1]
- return (200,"text/html",
-"""
-<html><head></head>
-<body>Hemos elegido al usuario '%s'.
-<p><a href="/pagina_principal/%s">Página principal</a>
-<p><a href="/stop">Parar la demo</a>
-</body></html>""" %(usuario,usuario))
+</body></html>""" %"\r\n".join(texto))
def do_GET(self) :
try :
path=self.path.split("/")[1:]
- resultado=getattr(self,"gestion_"+path[0],None)
- if resultado :
- resultado=resultado(path)
+ usuario=path.pop()
+
+ if not usuario :
+ resultado=self.elige_usuario()
else :
- resultado=(401,"text/html","La URL introducida es incorrecta")
+ if not len(path) : path=[""]
+ resultado=getattr(self,"gestion_"+path[0],None)
+ if resultado :
+ resultado=resultado(path,usuario)
+ else :
+ resultado=(401,"text/html","La URL introducida es incorrecta")
except :
self.send_response(500)
self.send_header("Content-Type","text/plain")
@@ -181,8 +163,12 @@
print >>sys.stderr,"EXCEPCION:",time.ctime()
raise
- self.send_response(resultado[0])
- self.send_header("Content-Type",resultado[1])
+ estado=resultado[0]
+ self.send_response(estado)
+ if estado==301 or estado==302 :
+ self.send_header("Location",resultado[1])
+ else :
+ self.send_header("Content-Type",resultado[1])
self.end_headers()
self.wfile.write(resultado[2])
More information about the cpif
mailing list