From e7655a2d990880f2f942b7e70ec2a0d5bb4ef23e Mon Sep 17 00:00:00 2001 From: anxdpanic Date: Mon, 17 Apr 2017 08:52:09 -0400 Subject: [PATCH] add audio only --- addon.xml | 2 +- resources/lib/twitch/api/usher.py | 2 ++ resources/lib/twitch/keys.py | 1 + resources/lib/twitch/parser.py | 44 +++++++++++-------------------- 4 files changed, 20 insertions(+), 29 deletions(-) diff --git a/addon.xml b/addon.xml index 8e7068b..ef96906 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + diff --git a/resources/lib/twitch/api/usher.py b/resources/lib/twitch/api/usher.py index 85222b9..28656cc 100644 --- a/resources/lib/twitch/api/usher.py +++ b/resources/lib/twitch/api/usher.py @@ -42,6 +42,7 @@ def _live(channel, token): q.add_param(keys.TOKEN, token[keys.TOKEN]) q.add_param(keys.ALLOW_SOURCE, Boolean.TRUE) q.add_param(keys.ALLOW_SPECTRE, Boolean.TRUE) + q.add_param(keys.ALLOW_AUDIO_ONLY, Boolean.TRUE) return q @@ -62,6 +63,7 @@ def _vod(video_id, token): q.add_param(keys.NAUTHSIG, token[keys.SIG]) q.add_param(keys.NAUTH, token[keys.TOKEN]) q.add_param(keys.ALLOW_SOURCE, Boolean.TRUE) + q.add_param(keys.ALLOW_AUDIO_ONLY, Boolean.TRUE) return q diff --git a/resources/lib/twitch/keys.py b/resources/lib/twitch/keys.py index f324065..e59759d 100644 --- a/resources/lib/twitch/keys.py +++ b/resources/lib/twitch/keys.py @@ -5,6 +5,7 @@ string constants """ +ALLOW_AUDIO_ONLY = 'allow_audio_only' ALLOW_SOURCE = 'allow_source' ALLOW_SPECTRE = 'allow_spectre' AVATAR_IMAGE = 'avatar_image' diff --git a/resources/lib/twitch/parser.py b/resources/lib/twitch/parser.py index f60e6b7..020bfbb 100644 --- a/resources/lib/twitch/parser.py +++ b/resources/lib/twitch/parser.py @@ -43,20 +43,14 @@ def m3u8_to_dict(string): d = dict() matches = re.finditer(_m3u_pattern, string) for m in matches: - if m.group('group_id') == 'chunked': - d[m.group('group_id')] = { - 'id': m.group('group_id'), - 'name': 'Source', - 'url': m.group('url'), - 'bandwidth': int(m.group('bandwidth')) - } - else: - d[m.group('group_id')] = { - 'id': m.group('group_id'), - 'name': m.group('group_name'), - 'url': m.group('url'), - 'bandwidth': int(m.group('bandwidth')) - } + name = 'Audio Only' if m.group('group_name') == 'audio_only' else m.group('group_name') + name = 'Source' if m.group('group_id') == 'chunked' else name + d[m.group('group_id')] = { + 'id': m.group('group_id'), + 'name': name, + 'url': m.group('url'), + 'bandwidth': int(m.group('bandwidth')) + } log.debug('m3u8_to_dict result:\n{}'.format(d)) return d @@ -66,20 +60,14 @@ def m3u8_to_list(string): l = list() matches = re.finditer(_m3u_pattern, string) for m in matches: - if m.group('group_id') == 'chunked': - l.insert(0, { - 'id': m.group('group_id'), - 'name': 'Source', - 'url': m.group('url'), - 'bandwidth': int(m.group('bandwidth')) - }) - else: - l.append({ - 'id': m.group('group_id'), - 'name': m.group('group_name'), - 'url': m.group('url'), - 'bandwidth': int(m.group('bandwidth')) - }) + name = 'Audio Only' if m.group('group_name') == 'audio_only' else m.group('group_name') + name = 'Source' if m.group('group_id') == 'chunked' else name + l.append({ + 'id': m.group('group_id'), + 'name': name, + 'url': m.group('url'), + 'bandwidth': int(m.group('bandwidth')) + }) log.debug('m3u8_to_list result:\n{}'.format(l)) return l