2022-11-09 01:01:02 +00:00
|
|
|
from src.fw_api import get_channels
|
|
|
|
from src.fw_albums import list_albums
|
|
|
|
from loguru import logger
|
|
|
|
from pyfzf.pyfzf import FzfPrompt
|
|
|
|
|
|
|
|
fzf = FzfPrompt()
|
|
|
|
|
|
|
|
|
|
|
|
@logger.catch
|
|
|
|
def list_channels(pg=None, search=None):
|
|
|
|
channels = get_channels(q=search, pg=pg)
|
|
|
|
channels_next = channels.get('next')
|
|
|
|
channels_prev = channels.get('previous')
|
|
|
|
channels_results = channels.get('results')
|
|
|
|
view = ['Search']
|
|
|
|
if channels_next:
|
|
|
|
view.append('Next page')
|
|
|
|
if channels_prev:
|
|
|
|
view.append('Prev page')
|
|
|
|
|
|
|
|
for i in channels_results:
|
|
|
|
index = channels_results.index(i)
|
|
|
|
channel_name = i.get('artist').get('name')
|
|
|
|
view.append(f'{index}.{channel_name}')
|
|
|
|
select = fzf.prompt(view)[0].split('.', 1)[0]
|
|
|
|
if select == 'Next page':
|
|
|
|
list_channels(pg=channels_next)
|
|
|
|
elif select == 'Prev page':
|
|
|
|
list_channels(pg=channels_prev)
|
|
|
|
elif select == 'Search':
|
|
|
|
print('Search by channel:')
|
|
|
|
list_channels(search=input())
|
|
|
|
else:
|
2022-11-09 11:26:23 +00:00
|
|
|
refresh = False
|
|
|
|
if channels_results[int(select)].get('artist').get('is_local') == False:
|
|
|
|
refresh = True
|
|
|
|
list_albums(artist=channels_results[int(select)].get('artist').get('id'), include_channels=True, refresh=refresh)
|