style: return info dict instead of dynamically filling

pull/12688/head
DarkCat09 4 months ago
parent 5f30070405
commit 45ca66f40d
No known key found for this signature in database

@ -792,40 +792,39 @@ class VKMusicBaseIE(VKBaseIE):
def _parse_track_meta(self, meta, track_id=None): def _parse_track_meta(self, meta, track_id=None):
len_ = len(meta) len_ = len(meta)
info = {}
# track title
info['id'] = f'{meta[1]}_{meta[0]}' \ title = unescapeHTML(meta[3]) if len_ >= 3 else None
if len_ >= 2 and meta[1] and meta[0] \ # artists in one string, may include "feat."
else track_id artist = unescapeHTML(meta[4]) if len_ >= 4 else None
title = unescapeHTML(meta[3]) if len_ >= 3 else None # TODO: fallback return {
artist = unescapeHTML(meta[4]) if len_ >= 4 else None # artists in one string, may include "feat." 'id': (f'{meta[1]}_{meta[0]}'
info['title'] = join_nonempty(artist, title, delim=' - ') if len_ >= 2 and meta[1] and meta[0]
info['track'] = title else track_id),
info['uploader'] = artist
'title': join_nonempty(artist, title, delim=' - '),
# artists as list 'track': title,
info['artists'] = ( 'uploader': artist,
# not htmlescaped unlike meta[4]
traverse_obj((*meta[17], *meta[18]), (..., 'name')) # ['Main Artist', 'Feat. Artist']
if len_ >= 18 else None 'artists': traverse_obj(
) or [artist] (*meta[17], *meta[18]) if len_ >= 18 else None,
(..., 'name'), default=[artist]),
info['duration'] = int_or_none(meta[5]) if len_ >= 5 else None
info['thumbnails'] = [{'url': meta[14]}] if len_ >= 14 else [] 'duration': int_or_none(meta[5]) if len_ >= 5 else None,
'thumbnails': [{'url': meta[14]}] if len_ >= 14 else [],
# meta[30] is 2 bits
# most significant: isExplicit # meta[30] is 2 bits
# least significant: isForeignAgent # most significant: isExplicit
# i. e. # least significant: isForeignAgent
# 00 = safe # i. e.
# 01 = marked by RKN as "foreign agent" # 00 = safe
# 10 = explicit lyrics # 01 = marked by RKN as "foreign agent"
# 11 = both E lyrics and "foreign agent" # 10 = explicit lyrics
if len_ >= 30 and meta[30]: # 11 = both E lyrics and "foreign agent"
info['age_limit'] = 18 'age_limit': 18 if len_ >= 30 and meta[30] else None,
}
return info
def _raise_if_blocked(self, meta, track_id): def _raise_if_blocked(self, meta, track_id):
reason = traverse_obj( reason = traverse_obj(

Loading…
Cancel
Save