[funkwhale] improve album data extraction
This commit is contained in:
parent
e59434e242
commit
bc1164719f
|
@ -5,8 +5,10 @@ from .common import SelfhostedInfoExtractor
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
compat_str,
|
compat_str,
|
||||||
compat_urllib_parse_urlencode,
|
compat_urllib_parse_urlencode,
|
||||||
|
int_or_none,
|
||||||
try_get,
|
try_get,
|
||||||
parse_iso8601,
|
parse_iso8601,
|
||||||
|
str_or_none,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,6 +73,7 @@ class FunkwhaleBaseExtractor(SelfhostedInfoExtractor):
|
||||||
'tags': track_data.get('tags'),
|
'tags': track_data.get('tags'),
|
||||||
}
|
}
|
||||||
info_dict.update(self._uploader_data_to_info_dict(track_data.get('attributed_to')))
|
info_dict.update(self._uploader_data_to_info_dict(track_data.get('attributed_to')))
|
||||||
|
info_dict.update(self._album_to_info_dict(track_data.get('album'), track_data))
|
||||||
return info_dict
|
return info_dict
|
||||||
|
|
||||||
def _uploader_data_to_info_dict(self, uploader_data):
|
def _uploader_data_to_info_dict(self, uploader_data):
|
||||||
|
@ -82,6 +85,18 @@ class FunkwhaleBaseExtractor(SelfhostedInfoExtractor):
|
||||||
'uploader_url': 'https://%s/@%s' % (uploader_data.get('domain'), uploader_data.get('preferred_username')),
|
'uploader_url': 'https://%s/@%s' % (uploader_data.get('domain'), uploader_data.get('preferred_username')),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def _album_to_info_dict(self, album_data, track_data={}):
|
||||||
|
if album_data is None:
|
||||||
|
return {}
|
||||||
|
return {
|
||||||
|
'track': str_or_none(track_data.get('title')),
|
||||||
|
'track_number': int_or_none(track_data.get('position')),
|
||||||
|
'album': str_or_none(album_data.get('title')),
|
||||||
|
'artist': str_or_none(track_data.get('artist', {}).get('name')),
|
||||||
|
'album_artist': str_or_none(album_data.get('artist', {}).get('name')),
|
||||||
|
'release_year': int_or_none(album_data.get('release_date', '')[:4]),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class FunkwhaleTrackSHIE(FunkwhaleBaseExtractor):
|
class FunkwhaleTrackSHIE(FunkwhaleBaseExtractor):
|
||||||
IE_NAME = 'funkwhale:track'
|
IE_NAME = 'funkwhale:track'
|
||||||
|
@ -298,4 +313,5 @@ class FunkwhaleAlbumSHIE(FunkwhaleBaseExtractor):
|
||||||
'entries': entries,
|
'entries': entries,
|
||||||
'thumbnails': thumbnails,
|
'thumbnails': thumbnails,
|
||||||
}
|
}
|
||||||
|
info_dict.update(self._album_to_info_dict(album_data))
|
||||||
return info_dict
|
return info_dict
|
||||||
|
|
Loading…
Reference in a new issue