Implement validator, some other fixes
This commit is contained in:
parent
6ce12c152f
commit
8d09794c9f
3 changed files with 50 additions and 3 deletions
|
@ -1,12 +1,15 @@
|
||||||
class Station:
|
class Station:
|
||||||
def __init__(self, name, sttype, extid = None, xcoord = None, ycoord = None, prodclass = None):
|
def __init__(self, name, sttype, extid = None, xcoord = None, ycoord = None, prodclass = None):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.sttype = stype
|
self.sttype = sttype
|
||||||
self.extid = extid
|
self.extid = extid
|
||||||
self.xcoord = xcoord
|
self.xcoord = xcoord
|
||||||
self.ycoord = ycoord
|
self.ycoord = ycoord
|
||||||
self.prodclass = prodclass
|
self.prodclass = prodclass
|
||||||
|
|
||||||
|
def useId(self):
|
||||||
|
return self.extid or self.name
|
||||||
|
|
||||||
class Service:
|
class Service:
|
||||||
def __init__(self, name, svtype, depst, deptime, arrst, arrtime, deppf = None, currdep = None, arrpf = None, curarr = None, img = None, url = None):
|
def __init__(self, name, svtype, depst, deptime, arrst, arrtime, deppf = None, currdep = None, arrpf = None, curarr = None, img = None, url = None):
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
|
@ -1,2 +1,23 @@
|
||||||
def worker(frm, to, count, time, mode):
|
from bs4 import BeautifulSoup
|
||||||
return "Connection."
|
import requests
|
||||||
|
import datetime
|
||||||
|
import workers.val
|
||||||
|
|
||||||
|
def connRequest(frm, to, count = 3, time = datetime.datetime.now(), mode = False):
|
||||||
|
outdate = datetime.datetime.strftime(time,"%d.%m.%Y")
|
||||||
|
outtime = datetime.datetime.strftime(time,"%H:%M")
|
||||||
|
|
||||||
|
url = "http://fahrplan.oebb.at/bin/query.exe/dn?start=1&S=%s&Z=%s&REQ0JourneyDate=%s&time=%s&REQ0HafasNumCons0=%s%s" % (frm.extId if frm.extId else frm.name, to.extid if to.extid else to.name, outdate, outtime, count, "×el=arrive" if mode else "")
|
||||||
|
source = requests.get(url).text
|
||||||
|
|
||||||
|
if "GO_conViewMode=outward" not in source:
|
||||||
|
raise ValueError("No connection found.")
|
||||||
|
|
||||||
|
return source
|
||||||
|
|
||||||
|
def getStation(name):
|
||||||
|
return workers.val.validateName(name)[0]
|
||||||
|
|
||||||
|
def worker(frm, to, count = 3, time = datetime.datetime.now(), mode = False):
|
||||||
|
source = connRequest(frm, to, count, time, mode)
|
||||||
|
conns = dissem(source)
|
||||||
|
|
|
@ -1,2 +1,25 @@
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
import urllib.parse
|
||||||
|
from classes import *
|
||||||
|
|
||||||
|
def getValidator(name):
|
||||||
|
return requests.get("http://www.oebb.at/__ressources/system/stationsHafas.jsp?q=%s" % name).text
|
||||||
|
|
||||||
|
def validateName(name):
|
||||||
|
stations = json.loads(getValidator(name))
|
||||||
|
for station in stations:
|
||||||
|
name = station["value"]
|
||||||
|
sttype = station["type"]
|
||||||
|
try:
|
||||||
|
extid = station["extId"]
|
||||||
|
except:
|
||||||
|
extid = None
|
||||||
|
xcoord = station["xcoord"]
|
||||||
|
ycoord = station["ycoord"]
|
||||||
|
prodclass = station["prodClass"]
|
||||||
|
|
||||||
|
yield Station(name = name, sttype = sttype, extid = extid, xcoord = xcoord, ycoord = ycoord, prodclass = prodclass)
|
||||||
|
|
||||||
def worker(name):
|
def worker(name):
|
||||||
return "Validate."
|
return "Validate."
|
||||||
|
|
Loading…
Reference in a new issue