WIP: 优化上传图片到Lsky Pro的逻辑,增加重试机制和超时设置;调整Markdown文件保存路径处理 #2
| @@ -11,11 +11,14 @@ import shutil | ||||
|  | ||||
| # 配置信息 | ||||
| local_image_folder = 'downloaded_images' | ||||
| #lsky_pro_url = 'http://192.168.107.248:18089/api/v1' | ||||
| lsky_pro_url_local = 'http://192.168.107.248:18089/api/v1' | ||||
| lsky_pro_url = 'https://image.lqsjy.cn/api/v1' | ||||
| upload_endpoint = '/upload' | ||||
| token = '1|QJP2YEr9GIN52VBgmm5hCqV5DwBSvJLUKjnwcKB8' | ||||
|  | ||||
| # 添加全局变量控制使用本地/在线图床 | ||||
| use_local_server = True | ||||
|  | ||||
| # 确保本地图片文件夹存在 | ||||
| #os.makedirs(local_image_folder, exist_ok=True) | ||||
| def get_image_folder(markdown_path): | ||||
| @@ -155,7 +158,12 @@ def upload_image_to_lsky_pro(image_path, retries=3, timeout=30): | ||||
|                     'Authorization': f'Bearer {token}', | ||||
|                     'Accept': 'application/json' | ||||
|                 } | ||||
|                 response = requests.post(f'{lsky_pro_url}{upload_endpoint}', files=files, headers=headers, timeout=timeout) | ||||
|                 # 根据复选框状态选择URL | ||||
|                 current_url = lsky_pro_url_local if use_local_server else lsky_pro_url | ||||
|                 response = requests.post(f'{current_url}{upload_endpoint}',  | ||||
|                                       files=files,  | ||||
|                                       headers=headers,  | ||||
|                                       timeout=timeout) | ||||
|                 if response.status_code == 200: | ||||
|                     try: | ||||
|                         data = response.json() | ||||
| @@ -193,7 +201,10 @@ def process_image_file(markdown_file_path): | ||||
|  | ||||
|                      | ||||
|                         # 上传到图床 | ||||
|                         new_url = upload_image_to_lsky_pro(url) | ||||
|                         if ":" in url: | ||||
|                             new_url = upload_image_to_lsky_pro(url) | ||||
|                         else: | ||||
|                             new_url = upload_image_to_lsky_pro(os.path.dirname(markdown_file_path)+"//"+url) | ||||
|                         if new_url: | ||||
|                             url_mapping[url] = new_url | ||||
|                             print(f"处理成功: {url} -> {new_url}") | ||||
| @@ -379,6 +390,19 @@ def select_files(): | ||||
| root = tk.Tk() | ||||
| root.title("Markdown图片处理工具") | ||||
|  | ||||
| def toggle_server(): | ||||
|     global use_local_server | ||||
|     use_local_server = use_local_var.get() | ||||
|     print(f"使用{'本地' if use_local_server else '在线'}服务器") | ||||
|  | ||||
| # 添加复选框 | ||||
| use_local_var = tk.BooleanVar(value=True)  # 默认使用本地服务器 | ||||
| use_local_checkbox = tk.Checkbutton(root,  | ||||
|                                   text="使用本地服务器",  | ||||
|                                   variable=use_local_var, | ||||
|                                   command=toggle_server) | ||||
| use_local_checkbox.grid(row=5, column=0, columnspan=3, pady=5) | ||||
|  | ||||
| # 文件路径显示 | ||||
| tk.Label(root, text="Input File:").grid(row=0, column=0, padx=10, pady=10) | ||||
| input_file_entry = tk.Entry(root, width=50) | ||||
| @@ -389,9 +413,9 @@ tk.Button(root, text="Browse", command=choose_input_file).grid(row=0, column=2, | ||||
| download_button = tk.Button(root, text="下载图片", command=download_images) | ||||
| download_button.grid(row=1, column=0, columnspan=3, pady=5) | ||||
|  | ||||
| # 上传图片按钮 | ||||
| upload_button = tk.Button(root, text="上传图片", command=upload_images) | ||||
| upload_button.grid(row=2, column=0, columnspan=3, pady=5) | ||||
| # # 上传图片按钮 | ||||
| # upload_button = tk.Button(root, text="上传图片", command=upload_images) | ||||
| # upload_button.grid(row=2, column=0, columnspan=3, pady=5) | ||||
|  | ||||
| # 上传图片按钮_batch_files | ||||
| # upload_button = tk.Button(root, text="上传图片_批量", command=upload_images_batch_files) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user