def make_doc()

in gnm_deliverables/inmeta.py [0:0]


def make_doc(asset:DeliverableAsset, platform:str) -> ET.Element:
    """
    create an ElementTree document that represents the given asset as inmeta
    :param asset: DeliverableAsset instance
    :return: populate ElementTree
    """
    rootEl = ET.Element("meta-data")

    moveInfoEl = ET.SubElement(rootEl, "meta-movie-info")
    ET.SubElement(moveInfoEl, "meta-movie", {"tokens":"format duration bitrate size tracks"})
    ET.SubElement(moveInfoEl, "meta-track", {"tokens": "type format start duration bitrate size"})
    ET.SubElement(moveInfoEl, "meta-video-track", {"tokens": "width height framerate"})
    ET.SubElement(moveInfoEl, "meta-audio-track", {"tokens": "channels bitspersample samplerate"})
    ET.SubElement(moveInfoEl, "meta-hint-track", {"tokens": "payload fmtp"})

    groupEl = ET.SubElement(rootEl, "meta-group", {"type":"movie meta"})
    field(groupEl, "itemId", asset.online_item_id)
    field(groupEl, "title", os.path.basename(asset.filename))
    field(groupEl, 'size', str(asset.size))
    if asset.changed_dt:
        timeString = asset.changed_dt.isoformat('T')
    else:
        timeString = datetime.now().isoformat("T")

    field(groupEl, "created", timeString)
    if asset.duration_seconds is not None:
        field(groupEl, "durationSeconds", str(asset.duration_seconds))
    if asset.version is not None:
        field(groupEl, "version", str(asset.version))
    field(groupEl, "pluto_deliverables_asset_id", str(asset.id))
    field(groupEl, "pluto_deliverables_project_id", str(asset.deliverable.pluto_core_project_id))
    field(groupEl, "pluto_deliverables_platform", platform)

    if asset.gnm_website_master:
        field(groupEl, "gnm_website_headline", asset.gnm_website_master.website_title)
        field(groupEl, "gnm_website_standfirst", asset.gnm_website_master.website_title)
        field(groupEl, "gnm_website_trail", asset.gnm_website_master.website_description)
        field(groupEl, "gnm_master_website_primary_tone", asset.gnm_website_master.primary_tone)
        #field(groupEl, "", asset.gnm_website_master.tags)
        field(groupEl, "gnm_master_generic_production_office", asset.gnm_website_master.production_office)
        field(groupEl, "gnm_master_website_publication_status", asset.gnm_website_master.publication_status)
        field(groupEl, "gnm_master_mediaatom_atomid", str(asset.gnm_website_master.media_atom_id))

    if asset.DailyMotion_master:
        if asset.DailyMotion_master.daily_motion_tags:
            kw = ",".join(asset.DailyMotion_master.daily_motion_tags)
            field(groupEl, "gnm_master_dailymotion_keywords", kw)
        field(groupEl, "gnm_master_dailymotion_owner", "The Guardian")
        field(groupEl, "gnm_master_dailymotion_status", asset.DailyMotion_master.upload_status)
        field(groupEl, "gnm_master_dailymotion_dailymotionurl", asset.DailyMotion_master.daily_motion_url)
        field(groupEl, "gnm_master_dailymotion_dailymotioncategory","{0}".format(asset.DailyMotion_master.daily_motion_category))
        field(groupEl, "gnm_master_dailymotion_author","The Guardian")
        field(groupEl, "gnm_master_dailymotion_description", asset.DailyMotion_master.daily_motion_description)
        field(groupEl, "gnm_master_dailymotion_title", asset.DailyMotion_master.daily_motion_title)
        field(groupEl, "gnm_master_dailymotion_uploadstatus", asset.DailyMotion_master.upload_status)
        field(groupEl, "gnm_master_dailymotion_nomobile", "{0}".format(asset.DailyMotion_master.daily_motion_no_mobile_access))
        field(groupEl, "gnm_master_dailymotion_adult_content", "{0}".format(asset.DailyMotion_master.daily_motion_contains_adult_content))

    if asset.mainstream_master:
        field(groupEl, "gnm_master_mainstreamsyndication_title", asset.mainstream_master.mainstream_title)
        if asset.mainstream_master.mainstream_tags:
            kw = ",".join(asset.mainstream_master.mainstream_tags)
            field(groupEl, "gnm_master_mainstreamsyndication_keywords", kw)
        field(groupEl, "gnm_master_mainstreamsyndication_description", asset.mainstream_master.mainstream_description)
        field(groupEl, "gnm_master_mainstreamsyndication_author", "The Guardian")
        field(groupEl, "gnm_master_mainstreamsyndication_publish", "")
        field(groupEl, "gnm_master_mainstreamsyndication_remove", "")
    return rootEl