From f33bf31420a3da91f99e4a2964f781632db98c94 Mon Sep 17 00:00:00 2001 From: holwell Date: Fri, 14 Feb 2025 16:38:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=AD=E7=82=B9=E7=BB=AD?= =?UTF-8?q?=E4=BC=A0=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BB=8E=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E4=B8=8A=E4=BC=A0=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E7=BB=A7=E7=BB=AD=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/main.py b/main.py index 07425eb..36fed8c 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ import os import json +from typing import Union import requests import time @@ -108,6 +109,14 @@ def import_song(song_info, cookie): def save_failed_id(song_id): with open("failed_ids.txt", "a") as f: f.write(f"{song_id}\n") + +# 获取最后一个上传的异常 id +def get_last_failed_id() -> Union[int, None]: + if not os.path.exists("failed_ids.txt"): + return None + with open("failed_ids.txt", "r") as f: + ids = [line.strip() for line in f] + return int(ids[-1]) # 处理歌曲导入请求 def process_songs(song_info_list, cookie): @@ -162,6 +171,16 @@ def try_to_upload_song(song_info, cookie): if attempts == 3: # 如果失败三次,则跳过此 ID print(f"歌曲 {song_id} 失败三次,跳过该歌曲。") save_failed_id(song_id) # 保存失败的 ID + +def get_resume_song_info_list(song_info_list) -> list: + last_failed_id = get_last_failed_id() + if last_failed_id is None: + print("暂无上传失败记录,从头开始上传") + return + for index, song_info in enumerate(song_info_list): + if int(song_info['id']) == last_failed_id: + print(f"当前已上传: {index + 1},最后上传失败的 id: {song_info['id']}") + return song_info_list[index + 1:] # 主函数 def main(): @@ -192,6 +211,9 @@ def main(): song_info_list = get_all_song_info(songs_data) #print(f"所有歌曲信息: {song_info_list}") + # 从上次失败的歌曲开始上传 + song_info_list = get_resume_song_info_list(song_info_list) + # 执行歌曲导入请求 process_songs(song_info_list, cookie) else: