Compare commits

...

3 commits

3 changed files with 29 additions and 5 deletions

View file

@ -74,17 +74,17 @@ def get_instance_settings():
@logger.catch
def get_audio_file(track_uuid, listen_url=False, download=False,
transcoding=get_config('enable_server_transcoding'), to='ogg'):
if not transcoding:
to = None
params = {
"download": download,
"to": to
}
if not transcoding:
del params['to']
if listen_url:
url = f'https://{current_instance.instance}{track_uuid}?'
else:
url = f'https://{current_instance.instance}/api/v1/listen/{track_uuid}?'
return url + urllib.parse.urlencode(params)
return url + urllib.parse.urlencode(params, doseq=True)
@logger.catch

View file

@ -126,7 +126,11 @@ def radio_load(id_radio=None, type_radio='custom', name=None, related_object=Non
if playlist_remaining <= 2:
threading.Thread(target=radio_get_track, args=(
radio_session_id,), daemon=True).start()
player.playlist_next()
if playlist_remaining > 1:
player.playlist_next()
else:
print('No more tracks, please wait for new...')
time.sleep(3)
elif select == 'Prev':
player.playlist_prev()
elif select in ('Pause', 'Play'):
@ -147,6 +151,7 @@ def radio_load(id_radio=None, type_radio='custom', name=None, related_object=Non
key = track.get(i)
if key and isinstance(key, str):
print(i + ': ' + key)
print('Direct link: ' + player.stream_open_filename)
input()
elif select == 'Like':
favorite_track(player_fw_storage.storage.get(

View file

@ -5,6 +5,7 @@ from loguru import logger
from pyfzf.pyfzf import FzfPrompt
import mpv
import time
import sys
fzf = FzfPrompt()
@ -48,6 +49,20 @@ if track_activity_history:
time.sleep(1)
@player.property_observer('filtered-metadata')
@logger.catch
def osd_observer(_name, value):
'''Sumulate osd playing message in console'''
if value:
osd_message = []
for i in value.items():
if i[0] in ('Artist', 'Album', 'Title'):
osd_message.append(i[1])
sys.stdout.write('\r ')
sys.stdout.write('\r'+''.join(osd_message))
sys.stdout.flush()
def set_http_header(headers=[]):
player.http_header_fields = headers
@ -70,7 +85,10 @@ def player_menu(header='', storage={}):
select = fzf.prompt(player_items_menu, f"--header=\'{header}\'")[0]
if select == 'Next':
player.playlist_next()
try:
player.playlist_next()
except:
print('No more next tracks')
elif select == 'Prev':
player.playlist_prev()
elif select in ('Pause', 'Play'):
@ -91,6 +109,7 @@ def player_menu(header='', storage={}):
key = track.get(i)
if key and isinstance(key, str):
print(i + ': ' + key)
print('Direct link: ' + player.stream_open_filename)
input()
elif select == 'Like':
src.fw_api.favorite_track(