Implement validator, some other fixes

This commit is contained in:
Klaus-Uwe Mitterer 2017-09-21 14:48:05 +02:00
parent 6ce12c152f
commit 8d09794c9f
3 changed files with 50 additions and 3 deletions

View file

@ -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

View file

@ -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, "&timesel=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)

View file

@ -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."