diff --git a/parser.py b/parser.py index f9e98af..620bbd3 100644 --- a/parser.py +++ b/parser.py @@ -2,10 +2,9 @@ from urllib2 import Request, urlopen from urllib import urlencode, quote_plus, urlretrieve from gzip import GzipFile from cStringIO import StringIO -from zlib import decompress from struct import unpack from time import sleep -from datetime import timedelta, date, datetime +from datetime import timedelta, date, time, datetime from lxml import etree def get_id(station): @@ -364,7 +363,7 @@ class PlnParse: self.connections.append({ "freq":self.get_frequency(freq), "number_of_changes":number_of_changes, - "duration":self.parse_time(duration), + "duration":self.parse_timedelta(duration), "trains":trains}) def parse_products(self, products): @@ -378,15 +377,25 @@ class PlnParse: p = ["ice", "ic", "ir", "re", "sbahn", "bus", "boat", "subway", "tram", "taxi"] return dict(zip(p, map(bool, map(int, products[:10])))) - def parse_time(self, time): + def parse_timedelta(self, t): """ time is stored as an integer which, when represented as a string can be split to get a string representation of the time 1345 => 13:54 512 => 5:12 """ - time = "%03d"%time - return ":".join([time[:-2], time[-2:]]) + t = "%03d"%t + return timedelta(hours=int(t[:-2]), minutes=int(t[-2:])) + + def parse_time(self, t): + """ + time is stored as an integer which, when represented as a string can be + split to get a string representation of the time + 1345 => 13:54 + 512 => 5:12 + """ + t = "%03d"%t + return time(hour=int(t[:-2]), minute=int(t[-2:])) def parse_date(self, d): """ @@ -463,10 +472,11 @@ class PlnParse: name, L, X, Y = unpack("> y) & 1) for y in range(16-1, -1, -1))