diff SrvTxtUtils.py @ 490:6f116b86a226 elementtree

more new template stuff. moved ImageFile index method to SrvTxtUtils
author casties
date Mon, 29 Aug 2011 16:39:50 +0200
parents 19bd41d95f62
children c55e376be01b
line wrap: on
line diff
--- a/SrvTxtUtils.py	Thu Aug 25 17:05:22 2011 +0200
+++ b/SrvTxtUtils.py	Mon Aug 29 16:39:50 2011 +0200
@@ -1,12 +1,17 @@
 """Utility methods for handling XML, reading HTTP, etc"""
 
+from App.ImageFile import ImageFile
+from App.Common import rfc1123_date
+
 import sys
+import os
+import stat
 import urllib
 import urllib2
 import logging
 
 
-srvTxtUtilsVersion = "1.0"
+srvTxtUtilsVersion = "1.3"
 
 def getInt(number, default=0):
     """returns always an int (0 in case of problems)"""
@@ -15,14 +20,25 @@
     except:
         return int(default)
 
-def getText(node):
+def getAt(array, idx, default=None):
+    """returns element idx from array or default (in case of problems)"""
+    try:
+        return array[idx]
+    except:
+        return default
+
+def getText(node, recursive=0):
     """returns all text content of a node and its subnodes"""
     if node is None:
-        return ""
+        return ''
+    
     # ElementTree:
-    text = node.text or ""
+    text = node.text or ''
     for e in node:
-        text += getText(e)
+        if recursive:
+            text += getText(e)
+        else:
+            text += e.text or ''
         if e.tail:
             text += e.tail
 
@@ -81,3 +97,13 @@
     raise IOError("ERROR fetching HTTP data from %s: %s"%(url,errmsg))
     #return None
 
+
+def refreshingImageFileIndexHtml(self, REQUEST, RESPONSE):
+    """index_html method for App.ImageFile that updates the file info for each request."""
+    stat_info = os.stat(self.path)
+    self.size = stat_info[stat.ST_SIZE]
+    self.lmt = float(stat_info[stat.ST_MTIME]) or time.time()
+    self.lmh = rfc1123_date(self.lmt)
+    # call original method
+    return ImageFile.index_html(self, REQUEST, RESPONSE)
+