Exemplo n.º 1
0
def main():
    music_list = []

    if not glovar.get_option('keyword'):
        # 如果未设置关键词
        keyword = input('请输入要搜索的歌曲,名称和歌手一起输入可以提高匹配(如 空帆船 朴树):\n > ')
        glovar.set_option('keyword', keyword)

    for source in glovar.get_option('source').split():
        try:
            echo.notice(source=source)
            music_list += addons.get(source).search(
                glovar.get_option('keyword'))
        except Exception as e:
            logger.error('Get %s music list failed.' % source.upper())
            logger.error(e)

    if glovar.get_option('merge'):
        # 对搜索结果排序和去重
        music_list = music_list_merge(music_list)

    echo.menu(music_list)
    choices = input('请输入要下载的歌曲序号,多个序号用空格隔开:')

    downloadByIndexList(choices.split(), music_list)

    # 下载完后继续搜索
    keyword = input('请输入要搜索的歌曲,或Ctrl+C退出:\n > ')
    glovar.set_option('keyword', keyword)
    main()
Exemplo n.º 2
0
def main(keyword):
    music_list = []
    for key, extractor in addons.items():
        try:
            music_list += extractor(session).search(keyword,
                                                    config.config.search_count)
        except Exception as e:
            logger.error('Get %s music list failed.' % key)

    echo.menu(music_list)
    choices = input('请输入要下载的歌曲序号,多个序号用空格隔开:')
    download_by_index_list(choices.split(), music_list)
Exemplo n.º 3
0
def main():
    music_list = []
    thread_pool = []
    errors = []

    if not glovar.get_option('keyword'):
        # 如果未设置关键词
        keyword = input('请输入要搜索的歌曲,名称和歌手一起输入可以提高匹配(如 空帆船 朴树):\n > ')
        glovar.set_option('keyword', keyword)

    echo.notice(glovar.get_option('keyword'))

    for source in glovar.get_option('source').split():
        t = threading.Thread(target=music_search, args=(source, music_list, errors))
        thread_pool.append(t)
        t.start()

    for t in thread_pool:
        t.join()

    echo.line()

    for err in errors:
        logger.error('Get %s music list failed.' % err[0].upper())
        logger.error(err[1])

    if glovar.get_option('merge'):
        # 对搜索结果排序和去重
        music_list = music_list_merge(music_list)

    echo.menu(music_list)
    choices = input('请输入要下载的歌曲序号,多个序号用空格隔开:')

    for choice in choices.split():
        start, _, end = choice.partition('-')
        if end:
            for i in range(int(start), int(end)+1):
                music_download(i, music_list)
        else:
            music_download(start, music_list)

    # 下载完后继续搜索
    keyword = input('请输入要搜索的歌曲,或Ctrl+C退出:\n > ')
    glovar.set_option('keyword', keyword)
    main()
Exemplo n.º 4
0
def main():
    music_list = []
    thread_pool = []
    errors = []

    if not glovar.get_option('keyword'):
        # 如果未设置关键词
        cli.set_music_keyword('请输入要搜索的歌曲,名称和歌手一起输入可以提高匹配(如 空帆船 朴树):\n > ')

    echo.notice(glovar.get_option('keyword'))

    # 多线程搜索
    for source in glovar.get_option('source').split():
        t = threading.Thread(target=music_search,
                             args=(source, music_list, errors))
        thread_pool.append(t)
        t.start()
    for t in thread_pool:
        t.join()

    # 分割线
    echo.line()
    # 输出错误信息
    for err in errors:
        logger.error('Get %s music list failed.' % err[0].upper())
        logger.error(err[1])

    if glovar.get_option('merge'):
        # 对搜索结果排序和去重
        music_list = music_list_merge(music_list)

    echo.menu(music_list)

    selected = cli.get_music_select()
    for idx in selected:
        music_download(idx, music_list)

    # 下载完后继续搜索
    cli.set_music_keyword()
    main()