[cpif] r392 - trunk/frontend-web
svn at argo.es
svn at argo.es
Mon Oct 15 19:26:18 CEST 2007
Author: jcea
Date: Mon Oct 15 19:26:16 2007
New Revision: 392
Log:
Soporte SITEMAP
Added:
trunk/frontend-web/url_robots_txt.py
- copied, changed from r391, /trunk/frontend-web/url_robots.txt.py
trunk/frontend-web/url_sitemap_xml.py
- copied, changed from r390, /trunk/frontend-web/url_sitemap.xml.py
Removed:
trunk/frontend-web/url_robots.txt.py
trunk/frontend-web/url_sitemap.xml.py
Modified:
trunk/frontend-web/servidor_web.py
trunk/frontend-web/url_nuevo_post_POST.py
Modified: trunk/frontend-web/servidor_web.py
==============================================================================
--- trunk/frontend-web/servidor_web.py (original)
+++ trunk/frontend-web/servidor_web.py Mon Oct 15 19:26:16 2007
@@ -144,7 +144,13 @@
modulo=i[:-len(".py")]
nombre=modulo[len("url_"):]
modulo=__import__(modulo)
- urls[nombre]=getattr(modulo,"gestiona_url")
+ gestiona_url=getattr(modulo,"gestiona_url")
+ assert nombre not in urls
+ urls[nombre]=gestiona_url
+ aliases=getattr(modulo,"url_aliases",[])
+ for alias in aliases :
+ assert alias not in urls
+ urls[alias]=gestiona_url
init=getattr(modulo,"init",None)
if init : init()
Modified: trunk/frontend-web/url_nuevo_post_POST.py
==============================================================================
--- trunk/frontend-web/url_nuevo_post_POST.py (original)
+++ trunk/frontend-web/url_nuevo_post_POST.py Mon Oct 15 19:26:16 2007
@@ -24,8 +24,7 @@
if not usuario : # Acceso anonimo
return (302,{"Location":"/LOGIN/hilo/%d" % hilo}, "")
import database
- if not database.user_has_thread_access(conn,usuario,metatag,write=True) :
- print "XXX"
+ if not database.user_has_thread_access(conn,usuario,hilo,write=True) :
return None
if database.thread_is_readonly(conn,hilo) :
Copied: trunk/frontend-web/url_robots_txt.py (from r391, /trunk/frontend-web/url_robots.txt.py)
==============================================================================
--- /trunk/frontend-web/url_robots.txt.py (original)
+++ trunk/frontend-web/url_robots_txt.py Mon Oct 15 19:26:16 2007
@@ -1,5 +1,7 @@
# $Id$
+url_aliases=["robots.txt"]
+
from globales import monitor
from globales import base_url
@@ -7,6 +9,6 @@
def gestiona_url(conn,handler,path,usuario) :
if len(path)!=1 : return None
- return (200,{"Content-Type":"test/plain"},
- "Sitemap: %s/sitemap.xml" %base_url)
+ return (200,{"Content-Type":"text/plain"},
+ "Sitemap: %s/sitemap.xml\r\n" %base_url)
Copied: trunk/frontend-web/url_sitemap_xml.py (from r390, /trunk/frontend-web/url_sitemap.xml.py)
==============================================================================
--- /trunk/frontend-web/url_sitemap.xml.py (original)
+++ trunk/frontend-web/url_sitemap_xml.py Mon Oct 15 19:26:16 2007
@@ -1,7 +1,10 @@
# $Id$
+url_aliases=["sitemap.xml"]
+
from globales import monitor
+from globales import base_url,thread_len
@monitor
def gestiona_url(conn,handler,path,usuario) :
@@ -9,3 +12,32 @@
# Vemos que metatags puede ver el usuario anonimo
metatags=conn.get_root()["usuarios"]["usuarios"][""]["punto de lectura no leidos"].keys() # Usuario anonimo
+
+ hilos_ya_publicados=set()
+
+ import time
+
+ antiguo=time.time()-86400*14 # Dos semanas
+
+ ret=['<?xml version="1.0" encoding="utf-8" ?>']
+ ret.append('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">')
+
+ for metatag in metatags :
+ for ts,hilo in conn.get_root()["metatags"]["metatags"][metatag]["TS2hilo"].items_backward() :
+ if ts<antiguo : break
+ num_hilo,hilo=hilo
+ if num_hilo in hilos_ya_publicados : continue
+ hilos_ya_publicados.add(num_hilo)
+ num_mensajes=hilo["num_mensajes"]
+ ret.append("<url>")
+ pag=thread_len*((num_mensajes-1)/thread_len)
+ ret.append("<loc>%s/hilo/%d%s</loc>" %(base_url,num_hilo,"" if not pag else "/%d" %(pag+1)))
+ ret.append(time.strftime("<lastmod>%Y-%m-%dT%H:%M:%SZ</lastmod>",time.gmtime(hilo["TS"])))
+ ret.append("<changefreq>hourly</changefreq>")
+ ret.append("<priority>0.5</priority>")
+ ret.append("</url>")
+ ret.append('</urlset>')
+
+ return (200,{"Content-Type":"text/xml; charset=utf-8"},
+ "\r\n".join(ret))
+
More information about the cpif
mailing list