oebb_py/classes/__init__.py
2017-09-23 16:57:24 +02:00

107 lines
2.4 KiB
Python

class Station:
def __init__(self, name, sttype, extid = None, xcoord = None, ycoord = None, prodclass = None):
self.name = name
self.sttype = sttype
self.extid = extid
self.xcoord = float(xcoord)/1000000
self.ycoord = float(ycoord)/1000000
self.prodclass = prodclass
def useId(self):
return self.extid or self.name
def lat(self):
return self.ycoord
def lon(self):
return self.xcoord
def json(self, indent = 0, name = True, extid = True, sttype = False, coords = False, prodclass = False):
out = ""
return
def xml(self, indent = 0, name = True, extid = True, sttype = False, coords = False, prodclass = False):
out = " " * indent + "<station>\n"
out += (" " * indent + " <name>%s</name>\n" % self.name) if name else ""
out += (" " * indent + " <id>%s</id>\n" % self.useId()) if extid else ""
out += (" " * indent + " <type>%s</type>\n" % self.sttype) if sttype else ""
if coords:
out += " " * indent + " <coords>\n"
out += " " * indent + " <lon>%f</lon>\n" % self.xcoord
out += " " * indent + " <lat>%f</lat>\n" % self.ycoord
out += " " * indent + " </coords>\n"
out += (" " * indent + " <prodclass>%s</prodclass>\n" % self.prodclass) if prodclass else ""
out += " " * indent + "</station>\n"
return out
class Service:
def __init__(self, name, depst, deptime, arrst, arrtime, dest = None, deppf = None, currdep = None, arrpf = None, curarr = None):
self.name = name
self.dest = dest
self.depst = depst
self.deptime = deptime
self.arrst = arrst
self.arrtime = arrtime
self.deppf = deppf
self.currdep = currdep
self.arrpf = arrpf
self.curarr = curarr
def duration():
return self.arrtime - self.deptime
class Connection:
def __init__(self, buyurl = None):
self.services = []
self.buyurl = buyurl
def addService(self, service):
self.services.append(service)
def depst(self):
try:
return self.services[0].depst
except:
return None
def arrst(self):
try:
return self.services[-1].arrst
except:
return None
def deptime(self):
try:
return self.services[0].deptime
except:
return None
def arrtime(self):
try:
return self.services[-1].arrtime
except:
return None
def currdep(self):
try:
return self.services[0].currdep
except:
return None
def currarr(self):
try:
return self.services[-1].currarr
except:
return None
def duration(self):
try:
return self.services[-1].arrtime - self.services[0].deptime
except:
return None