From 794632d6c5dce68b9eade8094e74231aa90421f0 Mon Sep 17 00:00:00 2001 From: imgyh <1974355683@qq.com> Date: Mon, 27 Mar 2023 12:55:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(tiktok):=20=E5=A2=9E=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8B=E8=BD=BD=E5=A4=B1=E8=B4=A5=E9=87=8D=E8=AF=95?= =?UTF-8?q?=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TikTok.py | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/TikTok.py b/TikTok.py index 623fa7a..944f86c 100644 --- a/TikTok.py +++ b/TikTok.py @@ -600,6 +600,7 @@ class TikTok(object): try: url = awemeDict["video"]["play_addr"]["url_list"] if url != "": + self.isdwownload = False task_id = self.progress.add_task("download", filename="[ 视频 ]:" + desc, start=False) self.alltask.append(self.pool.submit(self.copy_url, task_id, url, video_path)) except Exception as e: @@ -617,6 +618,7 @@ class TikTok(object): try: url = image["url_list"][0] if url != "": + self.isdwownload = False task_id = self.progress.add_task("download", filename="[ 图集 ]:" + desc, start=False) self.alltask.append(self.pool.submit(self.copy_url, task_id, url, image_path)) except Exception as e: @@ -635,6 +637,7 @@ class TikTok(object): try: url = awemeDict["music"]["play_url"]["url_list"][0] if url != "": + self.isdwownload = False task_id = self.progress.add_task("download", filename="[ 原声 ]:" + desc, start=False) self.alltask.append(self.pool.submit(self.copy_url, task_id, url, music_path)) except Exception as e: @@ -652,6 +655,7 @@ class TikTok(object): try: url = awemeDict["video"]["cover_original_scale"]["url_list"][0] if url != "": + self.isdwownload = False task_id = self.progress.add_task("download", filename="[ 封面 ]:" + desc, start=False) self.alltask.append(self.pool.submit(self.copy_url, task_id, url, cover_path)) except Exception as e: @@ -666,6 +670,7 @@ class TikTok(object): # print("[ 提示 ]:avatar 已存在为您跳过...\r\n") pass else: + self.isdwownload = False try: url = awemeDict["author"]["avatar"]["url_list"][0] if url != "": @@ -691,17 +696,22 @@ class TikTok(object): for aweme in awemeList: self.awemeDownload(awemeDict=aweme, music=music, cover=cover, avatar=avatar, resjson=resjson, savePath=savePath) # time.sleep(0.5) - wait(self.alltask, return_when=ALL_COMPLETED) - # 清除上一步的进度条 - for taskid in self.progress.task_ids: - self.progress.remove_task(taskid) - # 下载上一步失败的 - with self.progress: - with ThreadPoolExecutor(max_workers=thread) as self.pool: - self.progress.console.log("正在重试下载失败的内容...") - for aweme in awemeList: - self.awemeDownload(awemeDict=aweme, music=music, cover=cover, avatar=avatar, resjson=resjson, savePath=savePath) - # time.sleep(0.5) + while True: + wait(self.alltask, return_when=ALL_COMPLETED) + # 清除上一步的进度条 + for taskid in self.progress.task_ids: + self.progress.remove_task(taskid) + + self.isdwownload = True + # 下载上一步失败的 + with self.progress: + with ThreadPoolExecutor(max_workers=thread) as self.pool: + self.progress.console.log("正在检查下载是否完成...") + for aweme in awemeList: + self.awemeDownload(awemeDict=aweme, music=music, cover=cover, avatar=avatar, resjson=resjson, savePath=savePath) + # time.sleep(0.5) + if self.isdwownload: + break wait(self.alltask, return_when=ALL_COMPLETED) end = time.time() # 结束时间