# dependencies
# - python 2.6 for json
# - argparse; either python 2.7, or install separately
-# - collections.OrderedDict; python 2.7
from __future__ import print_function
from __future__ import unicode_literals
_PAGES = {}
+if not hasattr(collections, 'OrderedDict'): # Python 2.6 or earlier
+ class _OrderedDict (dict):
+ "Just enough of a stub to get through Page._get_threads"
+ def __init__(self, *args, **kwargs):
+ super(_OrderedDict, self).__init__(*args, **kwargs)
+ self._keys = [] # record key order
+
+ def __setitem__(self, key, value):
+ super(_OrderedDict, self).__setitem__(key, value)
+ self._keys.append(key)
+
+ def __values__(self):
+ for key in self._keys:
+ yield self[key]
+
+
+ collections.OrderedDict = _OrderedDict
+
+
def read_config(path=None, encoding=None):
"Read config from json file"
if not encoding:
for thread in threads:
for message_display_data in thread:
stream.write((
- '<tr><td>{date}\n'
- '</td><td>{message-id-term}\n'
- '</td></tr>\n'
- '<tr><td>{from}\n'
- '</td><td>{subject}\n'
- '</td></tr>\n'
+ '<tr>\n'
+ ' <td>{date}</td>\n'
+ ' <td>{message-id-term}</td>\n'
+ '</tr>\n'
+ '<tr>\n'
+ ' <td>{from}</td>\n'
+ ' <td>{subject}</td>\n'
+ '</tr>\n'
).format(**message_display_data))
if thread != threads[-1]:
stream.write('<tr><td colspan="2"><br /></td></tr>\n')