def __get_context_metadata()

in slot_detection/score.py [0:0]


def __get_context_metadata(slot_timestamp, asset_metadata):
    rek_operator_keys = {
        "celebrityRecognition": ["Celebrities", "Celebrity"],
        "faceDetection": ["Faces", "Face"],
        "labelDetection": ["Labels", "Label"],
        "contentModeration": ["ModerationLabels", "ModerationLabel"]
    }
    context = {}
    for operator in rek_operator_keys:
        list_key = rek_operator_keys[operator][0]
        before = {}
        after = {}
        for result in asset_metadata[operator][list_key]:
            result_timestamp = result["Timestamp"] / 1000.0
            item_key = rek_operator_keys[operator][1]
            if slot_timestamp - context_interval <= result_timestamp <= slot_timestamp:
                for label in __labels_from_result(result, item_key):
                    if label["Name"] in before: 
                        if before[label["Name"]]["Confidence"] < label["Confidence"]:
                            before[label["Name"]] = label
                    else:
                        before[label["Name"]] = label
            elif slot_timestamp <= result_timestamp <= slot_timestamp + context_interval:
                for label in __labels_from_result(result, item_key):
                    if label["Name"] in after:
                        if after[label["Name"]]["Confidence"] < label["Confidence"]:
                            after[label["Name"]] = label
                    else:
                        after[label["Name"]] = label
            elif result_timestamp > slot_timestamp + context_interval:
                break
        context[list_key] = {
            "Before": list(before.values()),
            "After": list(after.values())
        }
    return context