--- documentViewer/Attic/SrvTxtUtils.py 2011/07/19 18:46:35 1.1.2.1 +++ documentViewer/Attic/SrvTxtUtils.py 2011/08/29 14:39:50 1.1.2.3 @@ -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 @@ def getInt(number, default=0): 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 @@ def getHttpData(url, data=None, num_trie 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) +