diff --git a/src/fw_radios.py b/src/fw_radios.py index 292831c..5d50e81 100644 --- a/src/fw_radios.py +++ b/src/fw_radios.py @@ -19,10 +19,16 @@ def list_radios(): name = i.get('name') view.append(f'{index}.{name}') + view.append('Favourites') + selected = fzf.prompt(view, f'--header \'Found {count} radios\'')[0].split('.', 1) - id_selected = selected[0] - id_radio = results[int(id_selected)].get('id') - radio_load(id_radio) + if 'Favourites' in selected: + type_radio = 'favorites' + radio_load(id_radio, type_radio) + else: + id_selected = selected[0] + id_radio = results[int(id_selected)].get('id') + radio_load(id_radio) def radio_generator(radio_session_id): @@ -31,14 +37,14 @@ def radio_generator(radio_session_id): time.sleep(60) -def radio_load(id_radio): +def radio_load(id_radio=None, type_radio='custom'): requested_radio = { 'custom_radio': id_radio, - 'radio_type': 'custom', + 'radio_type': type_radio, 'related_object_id': None } radio_session_id = post_radio_session(requested_radio).get('id') - for i in range(0, 10): + for i in range(0, 5): radio_get_track(radio_session_id) player.playlist_pos = 0 @@ -46,7 +52,6 @@ def radio_load(id_radio): radio_task.start() while True: try: - print(len(player.playlist)) select = fzf.prompt(('Next', 'Prev', 'Pause', 'Exit'), f'--header=\'Radio playing...\'')[0] if select == 'Next': radio_get_track(radio_session_id) @@ -72,8 +77,12 @@ def radio_load(id_radio): def radio_get_track(radio_session_id): radio_context = get_track_radio({'session': radio_session_id}) - track = radio_context.get('track') - listen_url = track.get('listen_url') - player.playlist_append(concatinate_endpoint(listen_url)) + + if radio_context == "Radio doesn't have more candidates": + return + else: + track = radio_context.get('track') + listen_url = track.get('listen_url') + player.playlist_append(concatinate_endpoint(listen_url))