[stem/master] Handling the server descriptor's published line

commit 0ae8839cd91e658a36e7a4c9e5eeec7a75146651 Author: Damian Johnson <atagar@torproject.org> Date: Sat Mar 17 19:24:45 2012 -0700 Handling the server descriptor's published line Ugggg, I'm always filled with hate when I need to touch the datetime module. I'm not entirely sure if I'm supposed to be associating timezone information with this datetime object or not - and if I am how to get the f*ing thing to realize that it's GMT. --- stem/descriptor/server_descriptor.py | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py index 8c1b845..d0f343c 100644 --- a/stem/descriptor/server_descriptor.py +++ b/stem/descriptor/server_descriptor.py @@ -9,11 +9,12 @@ etc). This information is provided from a few sources... """ import re +import datetime import stem.version -from stem.descriptor.descriptor import Descriptor import stem.util.connection import stem.util.tor_tools +from stem.descriptor.descriptor import Descriptor ENTRY_START = "router" ENTRY_END = "router-signature" @@ -68,7 +69,7 @@ class ServerDescriptorV2(Descriptor): observed_bandwidth (int) - estimated capacity of the relay based on usage in bytes/s (*) platform (str) - operating system and tor version tor_version (stem.version.Version) - version of tor - + published (datetime.datetime) - time in GMT when the descriptor was generated (*) * required fields, others are left as None if undefined """ @@ -76,6 +77,7 @@ class ServerDescriptorV2(Descriptor): nickname = address = or_port = socks_port = dir_port = None average_bandwidth = burst_bandwidth = observed_bandwidth = None platform = tor_version = None + published = None def __init__(self, contents): Descriptor.__init__(self, contents) @@ -174,4 +176,11 @@ class ServerDescriptorV2(Descriptor): try: tor_version = stem.version.Version(platform_comp[1]) except ValueError: pass + elif keyword == "published": + # "published" YYYY-MM-DD HH:MM:SS + + try: + self.published = datetime.datetime.strptime(values[0], "%Y-%m-%d %H:%M:%S") + except ValueError: + raise TypeError("Published line's time wasn't parseable: %s" % values[0])
participants (1)
-
atagar@torproject.org