Exemplo n.º 1
0
                        help="代理地址,默认http://127.0.0.1:1080",
                        default="http://127.0.0.1:1080")
    parser.add_argument("--no-proxy", action="store_true", help="关闭代理")

    args = parser.parse_args()

    cust_handler = QueueHandler()
    cust_handler.setFormatter(
        logging.Formatter(datefmt=DATE_FORMAT, fmt=LOG_FORMAT))
    logging.basicConfig(level=logging.DEBUG, handlers=(cust_handler, ))
    init()
    down = Download(args.name,
                    args.url,
                    proxy=args.proxy if not args.no_proxy else None,
                    process_num=args.process)
    asyncio.run(down.go())
    # 需要处理下带querystring的文件名
    m3u8_name = name_filter_pattern.sub("", args.url.split("/")[-1])
    # 需要处理下m3u8文件防止文件名不一致
    with open(f'{down._path}/{m3u8_name}', encoding="utf-8", mode="r+") as f:
        m3u8_file = f.read()
        key_res = key_pattern.search(m3u8_file)
        if key_res:
            key_name = key_res.group()
            m3u8_file = m3u8_file.replace(
                key_name,
                name_filter_pattern.sub(
                    "", file_suffix.sub(".ts",
                                        key_name.split("/")[-1])))
        ts_list = ts_pattern.findall(m3u8_file)
        for ts_link in ts_list: