예제 #1
0
def main(ctx, url, name, num_threads):
    num_downloads = num_threads
    url = url
    file_name = name
    if not file_name:
        file_name = parse_filename(url)

    with OneLinePrinter("Initializing..."):
        manager = DownloadManager(url)
        manager.create_downloads(num_downloads)

    file_size = manager.size

    formatter = ProgressBarFormatter('Downloading')
    with OneLinePrinter(formatter):
        with DownloadFile(file_name, file_size) as f:
            for download in manager.iter_downloads():
                b = formatter.create_bar(download.length)
                formatter.add_bar(b)
                download.bind(on_chunk, b, f)
                download.start()
            for download in manager.iter_downloads():
                download.join()