Skip to content

Commit 0f16d0d

Browse files
committed
refactor: deduplicate packaged webui error helpers
1 parent fafa933 commit 0f16d0d

1 file changed

Lines changed: 23 additions & 20 deletions

File tree

src-tauri/src/main.rs

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2194,26 +2194,31 @@ fn packaged_fallback_webui_dir(root_dir: Option<&Path>) -> Option<PathBuf> {
21942194
}
21952195
}
21962196

2197-
fn packaged_webui_missing_embedded_error(locale: &str, embedded_index: &Path) -> String {
2198-
if locale == "en-US" {
2199-
return format!(
2200-
"Packaged WebUI is unavailable. Missing embedded index at {} and fallback data/dist. Please reinstall AstrBot or download the matching dist.zip to data/dist.",
2201-
embedded_index.display()
2202-
);
2203-
}
2204-
2205-
format!(
2206-
"内置 WebUI 不可用。缺少内置入口文件:{},且回退目录 data/dist 也不可用。请重装 AstrBot,或下载匹配版本的 dist.zip 到 data/dist。",
2207-
embedded_index.display()
2208-
)
2197+
fn packaged_fallback_webui_index_display(root_dir: Option<&Path>) -> String {
2198+
packaged_fallback_webui_probe_dir(root_dir)
2199+
.map(|path| path.join("index.html").display().to_string())
2200+
.unwrap_or_else(|| "<unresolved>".to_string())
22092201
}
22102202

2211-
fn packaged_webui_missing_embedded_dir_error(locale: &str) -> String {
2203+
fn packaged_webui_unavailable_error(locale: &str, embedded_index: Option<&Path>) -> String {
22122204
if locale == "en-US" {
2205+
if let Some(index) = embedded_index {
2206+
return format!(
2207+
"Packaged WebUI is unavailable. Missing embedded index at {} and fallback data/dist. Please reinstall AstrBot or download the matching dist.zip to data/dist.",
2208+
index.display()
2209+
);
2210+
}
22132211
return "Packaged WebUI directory is missing and fallback data/dist is unavailable. Please reinstall AstrBot or download the matching dist.zip to data/dist."
22142212
.to_string();
22152213
}
22162214

2215+
if let Some(index) = embedded_index {
2216+
return format!(
2217+
"内置 WebUI 不可用。缺少内置入口文件:{},且回退目录 data/dist 也不可用。请重装 AstrBot,或下载匹配版本的 dist.zip 到 data/dist。",
2218+
index.display()
2219+
);
2220+
}
2221+
22172222
"内置 WebUI 目录缺失,且回退目录 data/dist 也不可用。请重装 AstrBot,或下载匹配版本的 dist.zip 到 data/dist。".to_string()
22182223
}
22192224

@@ -2223,8 +2228,6 @@ fn resolve_packaged_webui_dir(
22232228
) -> Result<PathBuf, String> {
22242229
let locale = resolve_shell_locale();
22252230
let fallback_webui_dir = packaged_fallback_webui_dir(root_dir);
2226-
let fallback_index_path = packaged_fallback_webui_probe_dir(root_dir)
2227-
.map(|path| path.join("index.html").display().to_string());
22282231

22292232
match embedded_webui_dir {
22302233
Some(candidate) => {
@@ -2246,16 +2249,16 @@ fn resolve_packaged_webui_dir(
22462249
return Ok(fallback);
22472250
}
22482251

2249-
let fallback_index = fallback_index_path.unwrap_or_else(|| "<unresolved>".to_string());
2252+
let fallback_index = packaged_fallback_webui_index_display(root_dir);
22502253
append_desktop_log(&format!(
22512254
"packaged webui resolution failed: embedded index missing at {}, fallback index missing at {}",
22522255
embedded_index.display(),
22532256
fallback_index
22542257
));
22552258

2256-
Err(packaged_webui_missing_embedded_error(
2259+
Err(packaged_webui_unavailable_error(
22572260
locale,
2258-
&embedded_index,
2261+
Some(&embedded_index),
22592262
))
22602263
}
22612264
None => {
@@ -2267,13 +2270,13 @@ fn resolve_packaged_webui_dir(
22672270
return Ok(fallback);
22682271
}
22692272

2270-
let fallback_index = fallback_index_path.unwrap_or_else(|| "<unresolved>".to_string());
2273+
let fallback_index = packaged_fallback_webui_index_display(root_dir);
22712274
append_desktop_log(&format!(
22722275
"packaged webui resolution failed: embedded webui directory is missing, fallback index missing at {}",
22732276
fallback_index
22742277
));
22752278

2276-
Err(packaged_webui_missing_embedded_dir_error(locale))
2279+
Err(packaged_webui_unavailable_error(locale, None))
22772280
}
22782281
}
22792282
}

0 commit comments

Comments
 (0)