Esempio n. 1
0
File: cmd.py Progetto: vra/pymxget
def config(platform_flag: str, cwd: str) -> None:
    if platform_flag is None and cwd is None:
        print("""
Current settings:
    download dir -> {}
    music platform -> {} [{}]
""".format(conf.settings['download_dir'], conf.settings['music_platform'],
           conf.get_site(conf.settings['music_platform'])),
              end='')
        return

    if platform_flag is not None:
        platform_id = conf.get_platform(platform_flag)
        if platform_id is None:
            logging.critical(
                'Unexpected music platform: "{}"'.format(platform_flag))
            sys.exit(1)
        conf.settings['music_platform'] = platform_id

    if cwd is not None:
        try:
            conf.settings.make_download_dir(cwd)
        except exceptions.ClientError as e:
            logging.critical(e)
            sys.exit(1)
        conf.settings['download_dir'] = cwd

    conf.settings.save()
Esempio n. 2
0
File: cmd.py Progetto: vra/pymxget
def song(platform_flag: str, song_id: str, **kwargs) -> None:
    platform_id = _get_platform_id(platform_flag)
    if platform_id is None:
        logging.critical(
            'Unexpected music platform: "{}"'.format(platform_flag))
        sys.exit(1)

    conf.settings.update(kwargs)
    client = conf.get_client(platform_id)
    loop = asyncio.get_event_loop()
    try:
        logging.info('Fetch song {} from {}'.format(
            song_id, conf.get_site(platform_id)))
        resp = loop.run_until_complete(client.get_song(song_id))
        loop.run_until_complete(cli.concurrent_download(client, '.', resp))
    except exceptions.ClientError as e:
        logging.critical(e)
    finally:
        loop.run_until_complete(client.close())