Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/journal/misc.py
diff options
context:
space:
mode:
authorSascha Silbe <sascha-pgp@silbe.org>2010-10-17 09:36:09 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2010-11-30 10:42:23 (GMT)
commit760deeb2a9eb3d840451823aa3b868b94c388f34 (patch)
treeb20d25df28d8a5b30341e65af2647d1ed2a24042 /src/jarabe/journal/misc.py
parent5fdb4f3826948c5604d59c58e02585815c01f302 (diff)
Journal details view: don't choke on invalid timestamp (SL#1590, SL#2208)
Metadata can get corrupted by crashes or malformed by buggy activities. We should do our best to display the parts that are usable. Acked-by: Simon Schampijer <simon@schampijer.de>
Diffstat (limited to 'src/jarabe/journal/misc.py')
-rw-r--r--src/jarabe/journal/misc.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/jarabe/journal/misc.py b/src/jarabe/journal/misc.py
index d1188c1..70b0488 100644
--- a/src/jarabe/journal/misc.py
+++ b/src/jarabe/journal/misc.py
@@ -83,14 +83,24 @@ def get_icon_name(metadata):
def get_date(metadata):
""" Convert from a string in iso format to a more human-like format. """
- if metadata.has_key('timestamp'):
- timestamp = float(metadata['timestamp'])
- return util.timestamp_to_elapsed_string(timestamp)
- elif metadata.has_key('mtime'):
- ti = time.strptime(metadata['mtime'], "%Y-%m-%dT%H:%M:%S")
- return util.timestamp_to_elapsed_string(time.mktime(ti))
- else:
- return _('No date')
+ if 'timestamp' in metadata:
+ try:
+ timestamp = float(metadata['timestamp'])
+ except (TypeError, ValueError):
+ logging.warning('Invalid timestamp: %r', metadata['timestamp'])
+ else:
+ return util.timestamp_to_elapsed_string(timestamp)
+
+ if 'mtime' in metadata:
+ try:
+ ti = time.strptime(metadata['mtime'], '%Y-%m-%dT%H:%M:%S')
+ except (TypeError, ValueError):
+ logging.warning('Invalid mtime: %r', metadata['mtime'])
+ else:
+ return util.timestamp_to_elapsed_string(time.mktime(ti))
+
+ return _('No date')
+
def get_bundle(metadata):
try: