python

Format: Python
 ( View Raw)
Date: Fri, 30 Dec 2022 at 03:58:29

                    while True:
                        try:
                            print(path)
                            with open(path, 'wb') as download_file:
                                url = fil.url
                                with httpx.stream("GET", url, follow_redirects=True) as response:
                                    total = int(response.headers["Content-Length"])
                                    with rich.progress.Progress(
                                        "[progress.percentage]{task.percentage:>3.0f}%",
                                        rich.progress.BarColumn(bar_width=None),
                                        rich.progress.DownloadColumn(),
                                        rich.progress.TransferSpeedColumn(),
                                    ) as progress:
                                        download_task = progress.add_task("Download", total=total)
                                        for chunk in response.iter_bytes():
                                            download_file.write(chunk)
                                            progress.update(download_task, completed=response.num_bytes_downloaded)
                        except Exception as e:
                            print(f"Error: {e}. Retrying.")
                            time.sleep(5)
                            continue
                        except BaseException:
                            os.unlink(path)
                            raise
                        break