[redbulltv] Use to try_get for optional metadata

This commit is contained in:
Ganden Schaffner 2019-08-10 15:33:15 -07:00
parent 5ab803e4f5
commit b225621f58
No known key found for this signature in database
GPG Key ID: AAF2420F20D8B553

View File

@ -2,8 +2,10 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import compat_str
from ..utils import ( from ..utils import (
RegexNotFoundError, RegexNotFoundError,
try_get,
float_or_none, float_or_none,
) )
import json import json
@ -155,28 +157,35 @@ class RedBullTVIE(InfoExtractor):
) )
# extract metadata # extract metadata
title = metadata2.get('title').strip() or \ title = try_get(metadata2, lambda x: x['title'], compat_str) or \
metadata.get('analytics', {}).get('asset', {}).get(['title']) try_get(metadata, lambda x: x['analytics']['asset']['title'], compat_str)
subheading = metadata2.get('subheading') subheading = try_get(metadata2, lambda x: x['subheading'], compat_str)
if subheading: if subheading:
title += ' - %s' % subheading title += ' - %s' % subheading
long_description = metadata2.get('long_description') long_description = try_get(metadata2, lambda x: x['long_description'], compat_str)
short_description = metadata2.get('short_description') or \ short_description = try_get(metadata2, lambda x: x['short_description'], compat_str) or \
metadata['pageMeta']['og:description'] try_get(metadata, lambda x: x['pageMeta']['og:description'],
compat_str)
duration = float_or_none(metadata2.get('duration'), scale=1000) duration = float_or_none(try_get(metadata2, lambda x: x['duration'], int),
scale=1000)
release_dates = [metadata.get('analytics', {}).get('asset', {}) \ release_dates = [try_get(metadata,
.get('publishDate')] lambda x: x['analytics']['asset']['publishDate'], compat_str)]
release_dates.append(metadata.get('analytics', {}).get('asset', {}) \ release_dates.append(try_get(metadata,
.get('trackingDimensions', {}).get('publishingDate')) lambda x: x['analytics']['asset']['trackingDimensions']['originalPublishingDate'],
compat_str))
release_dates.append(try_get(metadata,
lambda x: x['analytics']['asset']['trackingDimensions']['publishingDate'],
compat_str))
if release_dates[0]: if release_dates[0]:
release_date = release_dates[0][:10].replace('-', '') release_date = release_dates[0][:10].replace('-', '')
elif release_dates[1]: elif release_dates[1] or release_dates[2]:
release_date = ''.join(release_dates[1].split('-')[::-1]) release_date = ''.join((release_dates[1] or release_dates[2])
.split('-')[::-1])
else: else:
release_date = None release_date = None