Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <sascha-pgp@silbe.org>2013-06-22 07:56:08 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2013-06-22 07:56:08 (GMT)
commitff40ca8abf23d228c4bf15d45aa7e7a5c810c33b (patch)
tree30b61e342e55748199178cef287d2a0c57e9d22d
parent0a344a41852f14deb3f8023a892f205344bafc01 (diff)
ObjectListHtmlResource: factor out BufferResource from, add footer support
Factor out a generic BufferResource from ObjectListHtmlResource and add support for including a footer in the HTML (to be used by search support later).
-rwxr-xr-xjournal2webdav35
1 files changed, 24 insertions, 11 deletions
diff --git a/journal2webdav b/journal2webdav
index 3de7e63..e3ebabc 100755
--- a/journal2webdav
+++ b/journal2webdav
@@ -194,26 +194,32 @@ class JournalObjectResource(object):
return self._file.read(length or self._size)
-class ObjectListHtmlResource(object):
-
- def __init__(self, directory):
- self._html = self._generate_html(directory)
+class BufferResource(object):
+ def __init__(self):
self._position = 0
+ self._buffer = ''
def __len__(self):
- return len(self._html)
+ return len(self._buffer)
def __iter__(self):
- while self._position < len(self._html):
- yield self._html[self._position:self._position + CHUNK_SIZE]
+ while self._position < len(self._buffer):
+ yield self._buffer[self._position:self._position + CHUNK_SIZE]
self._position += CHUNK_SIZE
def read(self, length=0):
old_position = self._position
- self._position += length or len(self._html)
- return self._html[old_position:self._position]
+ self._position += length or len(self._buffer)
+ return self._buffer[old_position:self._position]
+
+
+class ObjectListHtmlResource(BufferResource):
- def _generate_html(self, directory):
+ def __init__(self, directory, footer=None):
+ super(ObjectListHtmlResource, self).__init__()
+ self._buffer = self._generate_html(directory, footer)
+
+ def _generate_html(self, directory, footer=None):
lines = ['<html>', '<head><title>Journal listing</title></head>',
'<body>','<table>', '<tr><th>Name</th></tr>']
@@ -223,7 +229,14 @@ class ObjectListHtmlResource(object):
lines.append(self._generate_html_entry(name, fs_object))
- lines += ['</table>', '</html>']
+ lines += ['</table>']
+
+ if isinstance(footer, list):
+ lines += footer
+ elif isinstance(footer, basestring):
+ lines += [footer]
+
+ lines += ['</html>']
return '\n'.join(lines)
def _generate_html_entry(self, name, fs_object):