def fetchfrommessage(message): journey = {} journey_xml = message.find('{http://bison.connekt.nl/tmi8/kv17/msg}KV17JOURNEY') for needle in ['dataownercode', 'lineplanningnumber', 'operatingday', 'journeynumber', 'reinforcementnumber']: journey[needle] = get_elem_text(journey_xml, needle) for child in message.getchildren(): parent_type = stripschema(child.tag) if parent_type == 'KV17MUTATEJOURNEY': required = ['timestamp'] for subchild in child.getchildren(): message_type = stripschema(subchild.tag) if message_type in ['RECOVER', 'ADD']: parseKV17(message, message_type, journey, required) elif message_type == 'CANCEL': parseKV17(message, message_type, journey, required + ['reasontype', 'subreasontype', 'reasoncontent', 'advicetype', 'subadvicetype', 'advicecontent']) elif parent_type == 'KV17MUTATEJOURNEYSTOP': required = ['timestamp', 'userstopcode', 'passagesequencenumber'] for subchild in child.getchildren(): message_type = stripschema(subchild.tag) if message_type == 'MUTATIONMESSAGE': parseKV17(message, message_type, journey, required + ['reasontype', 'subreasontype', 'reasoncontent', 'advicetype', 'subadvicetype', 'advicecontent']) elif message_type == 'SHORTEN': parseKV17(message, message_type, journey, required) elif message_type == 'LAG': parseKV17(message, message_type, journey, required + ['lagtime']) elif message_type == 'CHANGEPASSTIMES': parseKV17(message, message_type, journey, required + ['targetarrivaltime', 'targetdeparturetime', 'journeystoptype']) elif message_type == 'CHANGEDESTINATION': parseKV17(message, message_type, journey, required + ['destinationcode', 'destinationname50', 'destinationname16', 'destinationdetail16', 'destinationdisplay16']) return False
def fetchfrommessage(message): message_type = stripschema(message.tag) required = [ "dataownercode", "lineplanningnumber", "operatingday", "journeynumber", "reinforcementnumber", "timestamp", "source", ] if message_type == "DELAY": return parseKV6(message, message_type, required + ["punctuality"]) elif message_type == "INIT": return parseKV6( message, message_type, required + [ "userstopcode", "passagesequencenumber", "vehiclenumber", "blockcode", "wheelchairaccessible", "numberofcoaches", ], ) elif message_type in ["ARRIVAL", "ONSTOP", "DEPARTURE"]: return parseKV6( message, message_type, required + ["userstopcode", "passagesequencenumber", "vehiclenumber", "punctuality"] ) elif message_type == "ONROUTE": return parseKV6( message, message_type, required + [ "userstopcode", "passagesequencenumber", "vehiclenumber", "punctuality", "distancesincelastuserstop", "rd-x", "rd-y", ], ) elif message_type == "OFFROUTE": return parseKV6( message, message_type, required + ["userstopcode", "passagesequencenumber", "vehiclenumber", "rd-x", "rd-y"] ) elif message_type == "END": return parseKV6(message, message_type, required + ["userstopcode", "passagesequencenumber", "vehiclenumber"]) return None
def fetchfrommessage(message): message_type = stripschema(message.tag) required = ['dataownercode', 'messagecodedate', 'messagecodenumber'] if message_type == 'STOPMESSAGE': return parseKV15(message, message_type, required + ['messagepriority', 'messagetype', 'messagedurationtype', 'messagestarttime', 'messageendtime', 'messagecontent', 'reasontype', 'subreasontype', 'reasoncontent', 'effecttype', 'subeffecttype', 'effectcontent', 'measuretype', 'submeasuretype', 'measurecontent', 'advicetype', 'subadvicetype', 'advicecontent', 'messagetimestamp']) elif message_type == 'DELETEMESSAGE': return parseKV15(message, message_type, required) return False
def fetchfrommessage(message): message_type = stripschema(message.tag) required = ['dataownercode', 'lineplanningnumber', 'operatingday', 'journeynumber', 'reinforcementnumber', 'timestamp', 'source'] if message_type == 'DELAY': return parseKV6(message, message_type, required + ['punctuality']) elif message_type == 'INIT': return parseKV6(message, message_type, required + ['userstopcode', 'passagesequencenumber', 'vehiclenumber', 'blockcode', 'wheelchairaccessible', 'numberofcoaches']) elif message_type in ['ARRIVAL', 'ONSTOP', 'DEPARTURE']: return parseKV6(message, message_type, required + ['userstopcode', 'passagesequencenumber', 'vehiclenumber', 'punctuality']) elif message_type == 'ONROUTE': return parseKV6(message, message_type, required + ['userstopcode', 'passagesequencenumber', 'vehiclenumber', 'punctuality', 'distancesincelastuserstop', 'rd-x', 'rd-y']) elif message_type == 'OFFROUTE': return parseKV6(message, message_type, required + ['userstopcode', 'passagesequencenumber', 'vehiclenumber', 'rd-x', 'rd-y']) elif message_type == 'END': return parseKV6(message, message_type, required + ['userstopcode', 'passagesequencenumber', 'vehiclenumber']) return None
def fetchfrommessage(message): message_type = stripschema(message.tag) required = [ 'dataownercode', 'lineplanningnumber', 'operatingday', 'journeynumber', 'reinforcementnumber', 'timestamp', 'source' ] if message_type == 'DELAY': return parseKV6(message, message_type, required + ['punctuality']) elif message_type == 'INIT': return parseKV6( message, message_type, required + [ 'userstopcode', 'passagesequencenumber', 'vehiclenumber', 'blockcode', 'wheelchairaccessible', 'numberofcoaches' ]) elif message_type in ['ARRIVAL', 'ONSTOP', 'DEPARTURE']: return parseKV6( message, message_type, required + [ 'userstopcode', 'passagesequencenumber', 'vehiclenumber', 'punctuality' ]) elif message_type == 'ONROUTE': return parseKV6( message, message_type, required + [ 'userstopcode', 'passagesequencenumber', 'vehiclenumber', 'punctuality', 'distancesincelastuserstop', 'rd-x', 'rd-y' ]) elif message_type == 'OFFROUTE': return parseKV6( message, message_type, required + [ 'userstopcode', 'passagesequencenumber', 'vehiclenumber', 'rd-x', 'rd-y' ]) elif message_type == 'END': return parseKV6( message, message_type, required + ['userstopcode', 'passagesequencenumber', 'vehiclenumber']) return None
def fetchfrommessage(message): journey = {} journey_xml = message.find("{http://bison.connekt.nl/tmi8/kv17/msg}KV17JOURNEY") for needle in ["dataownercode", "lineplanningnumber", "operatingday", "journeynumber", "reinforcementnumber"]: journey[needle] = get_elem_text(journey_xml, needle) for child in message.getchildren(): parent_type = stripschema(child.tag) if parent_type == "KV17MUTATEJOURNEY": required = ["timestamp"] for subchild in child.getchildren(): message_type = stripschema(subchild.tag) if message_type in ["RECOVER", "ADD"]: parseKV17(message, message_type, journey, required) elif message_type == "CANCEL": parseKV17( message, message_type, journey, required + [ "reasontype", "subreasontype", "reasoncontent", "advicetype", "subadvicetype", "advicecontent", ], ) elif parent_type == "KV17MUTATEJOURNEYSTOP": required = ["timestamp", "userstopcode", "passagesequencenumber"] for subchild in child.getchildren(): message_type = stripschema(subchild.tag) if message_type == "MUTATIONMESSAGE": parseKV17( message, message_type, journey, required + [ "reasontype", "subreasontype", "reasoncontent", "advicetype", "subadvicetype", "advicecontent", ], ) elif message_type == "SHORTEN": parseKV17(message, message_type, journey, required) elif message_type == "LAG": parseKV17(message, message_type, journey, required + ["lagtime"]) elif message_type == "CHANGEPASSTIMES": parseKV17( message, message_type, journey, required + ["targetarrivaltime", "targetdeparturetime", "journeystoptype"], ) elif message_type == "CHANGEDESTINATION": parseKV17( message, message_type, journey, required + [ "destinationcode", "destinationname50", "destinationname16", "destinationdetail16", "destinationdisplay16", ], ) return False
else: for dossier in posinfo: for child in dossier.getchildren(): if child.tag == '{http://bison.connekt.nl/tmi8/kv6/core}delimiter': pass else: dataowner = child.find('{http://bison.connekt.nl/tmi8/kv6/msg}dataownercode') journeynumber = child.find('{http://bison.connekt.nl/tmi8/kv6/msg}journeynumber') reinforcementnumber = child.find('{http://bison.connekt.nl/tmi8/kv6/msg}reinforcementnumber') if dataowner is not None and journeynumber is not None and reinforcementnumber is not None: # Als je de standaard letterlijk leest zijn de volgende velden verplicht: # DataOwnerCode, LinePlanningNumber, OperatingDay, JourneyNumber, ReinforcementNumber node = '%s/%s' % (dataowner.text, journeynumber.text) state = stripschema(child.tag) if state == 'INIT': try: ps.create_node(KV6_PSHOST, node) except: pass try: ps.publish(KV6_PSHOST, node, id=reinforcementnumber.text, payload=child) except: pass print '%s/%s|%s - %s' % (dataowner.text, journeynumber.text, reinforcementnumber.text, stripschema(child.tag)) yield reply(KV6_OK % (time.strftime(ISO_TIME)), start_response)