From ff40ca8abf23d228c4bf15d45aa7e7a5c810c33b Mon Sep 17 00:00:00 2001 From: Sascha Silbe Date: Sat, 22 Jun 2013 07:56:08 +0000 Subject: 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). --- 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 = ['', 'Journal listing', '','', ''] @@ -223,7 +229,14 @@ class ObjectListHtmlResource(object): lines.append(self._generate_html_entry(name, fs_object)) - lines += ['
Name
', ''] + lines += [''] + + if isinstance(footer, list): + lines += footer + elif isinstance(footer, basestring): + lines += [footer] + + lines += [''] return '\n'.join(lines) def _generate_html_entry(self, name, fs_object): -- cgit v0.9.1