Implement validator, some other fixes
This commit is contained in:
parent
6ce12c152f
commit
8d09794c9f
|
@ -1,12 +1,15 @@
|
|||
class Station:
|
||||
def __init__(self, name, sttype, extid = None, xcoord = None, ycoord = None, prodclass = None):
|
||||
self.name = name
|
||||
self.sttype = stype
|
||||
self.sttype = sttype
|
||||
self.extid = extid
|
||||
self.xcoord = xcoord
|
||||
self.ycoord = ycoord
|
||||
self.prodclass = prodclass
|
||||
|
||||
def useId(self):
|
||||
return self.extid or self.name
|
||||
|
||||
class Service:
|
||||
def __init__(self, name, svtype, depst, deptime, arrst, arrtime, deppf = None, currdep = None, arrpf = None, curarr = None, img = None, url = None):
|
||||
self.name = name
|
||||
|
|
|
@ -1,2 +1,23 @@
|
|||
def worker(frm, to, count, time, mode):
|
||||
return "Connection."
|
||||
from bs4 import BeautifulSoup
|
||||
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):
|
||||
return "Validate."
|
||||
|
|
Loading…
Reference in a new issue