[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