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()
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)
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()
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()