Permalink
Browse files

Implementatie van actuelevertrektijden en een extra gratis mooie klasse.

  • Loading branch information...
1 parent fa2403f commit 90fec4c8abd6aab633fa5301a9b0f2504597d5da @skinkie skinkie committed Dec 19, 2011
Showing with 35 additions and 0 deletions.
  1. +35 −0 nsapi/avt.py
View
@@ -0,0 +1,35 @@
+from xml.etree import cElementTree as ET
+
+import dateutil.parser
+import httplib2
+
+
+class vertrekkendetrein():
+ def __init__(self, xml):
+ self.ritnummer = int(xml.find('{http://openov.nl/protocol/nsapi}RitNummer').text)
+ self.vertrektijd = dateutil.parser.parse(xml.find('{http://openov.nl/protocol/nsapi}VertrekTijd').text)
+ self.eindbestemming = xml.find('{http://openov.nl/protocol/nsapi}EindBestemming').text
+ self.treinsoort = xml.find('{http://openov.nl/protocol/nsapi}TreinSoort').text
+ self.vertrekspoor = xml.find('{http://openov.nl/protocol/nsapi}VertrekSpoor')
+ self.spoorwijziging = (self.vertrekspoor.attrib['wijziging'] == 'true')
+ self.vertrekspoor = self.vertrekspoor.text
+
+class avt():
+ def __init__(self, username, password):
+ self.http = httplib2.Http()
+ self.http.follow_redirects = False
+ self.http.add_credentials(username, password)
+
+ def fetch(self, station):
+ resp, content = self.http.request("https://webservices.ns.nl/ns-api-avt?station=%s" % (station))
+ if resp['status'] == '200':
+ content = content.replace('\n', '').replace('\t', '').replace(' ','').replace(' ', '')
+ try:
+ return ET.XML(content.replace('<ActueleVertrekTijden>', '<ActueleVertrekTijden xmlns="http://openov.nl/protocol/nsapi">'))
+ except:
+ pass
+
+ def fetchandparse(self, station):
+ root = self.fetch(station)
+ if root is not None:
+ return [vertrekkendetrein(xmltrein) for xmltrein in root.findall('{http://openov.nl/protocol/nsapi}VertrekkendeTrein')]

0 comments on commit 90fec4c

Please sign in to comment.