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
Beispiel #2
0
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
Beispiel #7
0
        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)