def update_mainstream()

in gnm_deliverables/launch_detector.py [0:0]


def update_mainstream(msg: LaunchDetectorUpdate, asset: DeliverableAsset):
    """
    either create or update a Mainstram information object from the given message
    :param msg: LaunchDetectorUpdate instance giving the content to update
    :param asset: DeliverableAsset that needs to be updated.
    :return:
    """
    if asset.mainstream_master is None:
        rec: Mainstream = Mainstream()
    else:
        rec: Mainstream = asset.mainstream_master

    if rec.mainstream_description is None or rec.mainstream_description=="":
        rec.mainstream_description = msg.description
    if rec.mainstream_title is None or rec.mainstream_title=="":
        rec.mainstream_title = msg.title
    if rec.mainstream_tags is None or len(rec.mainstream_tags)==0:
        rec.mainstream_tags = msg.keywords
    if rec.mainstream_rules_contains_adult_content is None:
        rec.mainstream_rules_contains_adult_content = False

    # set the etag in case something else is editing it at the moment
    rec.etag = zoned_datetime().isoformat('T')

    asset.mainstream_master = rec  #no-op if it was already set like this
    rec.save()
    asset.save()