添加后台线程下载远程图片并写入缓存

This commit is contained in:
xinzhu.yin
2026-04-23 10:07:41 +08:00
parent 4073a6e999
commit b26a3c398d
2 changed files with 130 additions and 8 deletions

View File

@@ -264,16 +264,10 @@ def _send_prompt(self):
if not prompt:
messagebox.showinfo("提示", "请输入内容")
return
if not _svc.has_api():
messagebox.showerror(
"API 未配置",
"AI 图片 API 尚未接入。\n请在启动时通过 "
"app.services.ai_image.set_api_caller(...) 注入真实实现。",
)
return
_set_requesting(self, True)
self.ai_image_status_var.set("请求中…")
is_remote_url = _svc.is_remote_image_url(prompt)
self.ai_image_status_var.set("下载中…" if is_remote_url else "请求中…")
def _success(record):
self.root.after(0, lambda: _on_request_done(self, record, None))
@@ -281,6 +275,25 @@ def _send_prompt(self):
def _error(exc):
self.root.after(0, lambda: _on_request_done(self, None, exc))
if is_remote_url:
_svc.import_image_from_url_async(
prompt,
on_success=_success,
on_error=_error,
)
return
if not _svc.has_api():
_set_requesting(self, False)
self.ai_image_status_var.set("就绪")
messagebox.showerror(
"API 未配置",
"AI 图片 API 尚未接入。\n"
"可直接输入图片 URL 导入,或在启动时通过 "
"app.services.ai_image.set_api_caller(...) 注入真实实现。",
)
return
_svc.request_image_async(prompt, on_success=_success, on_error=_error)