mirror of
https://gitea.phreedom.club/localhost_frssoft/funkwlmpv
synced 2024-11-05 23:03:00 +00:00
62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
from src.fw_api import s, select_instance, instance
|
|
from src.fw_radios import list_radios
|
|
from src.fw_artists import list_artists
|
|
from src.fw_albums import list_albums
|
|
import json, sys
|
|
from loguru import logger
|
|
from pyfzf.pyfzf import FzfPrompt
|
|
|
|
fzf = FzfPrompt()
|
|
|
|
def main():
|
|
logger.remove()
|
|
logger.add(sys.stderr, filter='src.fw_api')
|
|
logger.add(sys.stderr, filter='src.fw_radios')
|
|
logger.add(sys.stderr, filter='src.fw_artists')
|
|
while True:
|
|
menu = ['Radios',
|
|
'Artists',
|
|
'Albums',
|
|
'Switch instance']
|
|
if not s.headers.get('Authorization'):
|
|
menu.append('Sign in')
|
|
ids = fzf.prompt(menu)
|
|
|
|
selected = ids[0]
|
|
if selected == 'Radios':
|
|
list_radios()
|
|
if selected == 'Artists':
|
|
list_artists()
|
|
if selected == 'Albums':
|
|
list_albums()
|
|
if selected == 'Switch instance':
|
|
with open('config.json', 'rt') as f:
|
|
conf = json.loads(f.read())
|
|
list_instances = conf.get('public_list_instances')
|
|
instance = fzf.prompt(list_instances, '--header \'Select instance\'')[0]
|
|
select_instance(instance)
|
|
if selected == 'Sign in':
|
|
print(f'''
|
|
If You want sign in, please visit:
|
|
https://{instance}/settings/applications/new
|
|
And fill Name funkwhale-cli
|
|
Scopes: Read (only listen music), Write (optional)
|
|
|
|
Insert token from "Access token" here''')
|
|
register_token = input()
|
|
with open('.auth.json', 'rt') as f:
|
|
tkns = json.loads(f.read())
|
|
with open('.auth.json', 'wt') as f:
|
|
tkns[instance] = register_token
|
|
f.write(json.dumps(tkns))
|
|
del tkns
|
|
del register_token
|
|
del f
|
|
|
|
select_instance(instance)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|