logs translated from Chinese into English
This commit is contained in:
@@ -429,11 +429,11 @@ export const SysproxyViewer = forwardRef<DialogRef>((props, ref) => {
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.warn("代理状态更新失败:", err);
|
||||
console.warn("Proxy status update failed:", err);
|
||||
}
|
||||
}, 50);
|
||||
} catch (err: any) {
|
||||
console.error("配置保存失败:", err);
|
||||
console.error("Configuration save failed:", err);
|
||||
mutateVerge();
|
||||
showNotice("error", err.toString());
|
||||
// setOpen(true);
|
||||
|
||||
@@ -56,7 +56,7 @@ export const useProfiles = () => {
|
||||
// 根据selected的节点选择
|
||||
const activateSelected = async () => {
|
||||
try {
|
||||
console.log("[ActivateSelected] 开始处理代理选择");
|
||||
console.log("[ActivateSelected] Start processing proxy selection");
|
||||
|
||||
const [proxiesData, profileData] = await Promise.all([
|
||||
getProxies(),
|
||||
@@ -64,7 +64,9 @@ export const useProfiles = () => {
|
||||
]);
|
||||
|
||||
if (!profileData || !proxiesData) {
|
||||
console.log("[ActivateSelected] 代理或配置数据不可用,跳过处理");
|
||||
console.log(
|
||||
"[ActivateSelected] Proxy or configuration data unavailable, skipping processing",
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -73,19 +75,23 @@ export const useProfiles = () => {
|
||||
);
|
||||
|
||||
if (!current) {
|
||||
console.log("[ActivateSelected] 未找到当前profile配置");
|
||||
console.log(
|
||||
"[ActivateSelected] Current profile configuration not found",
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查是否有saved的代理选择
|
||||
const { selected = [] } = current;
|
||||
if (selected.length === 0) {
|
||||
console.log("[ActivateSelected] 当前profile无保存的代理选择,跳过");
|
||||
console.log(
|
||||
"[ActivateSelected] The current profile has no saved proxy selection, so it will be skipped",
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(
|
||||
`[ActivateSelected] 当前profile有 ${selected.length} 个代理选择配置`,
|
||||
`[ActivateSelected] The current profile has ${selected.length} proxy selection configurations`,
|
||||
);
|
||||
|
||||
const selectedMap = Object.fromEntries(
|
||||
@@ -108,7 +114,7 @@ export const useProfiles = () => {
|
||||
const targetProxy = selectedMap[name];
|
||||
if (targetProxy != null && targetProxy !== now) {
|
||||
console.log(
|
||||
`[ActivateSelected] 需要切换代理组 ${name}: ${now} -> ${targetProxy}`,
|
||||
`[ActivateSelected] Need to switch proxy groups ${name}: ${now} -> ${targetProxy}`,
|
||||
);
|
||||
hasChange = true;
|
||||
updateProxy(name, targetProxy);
|
||||
@@ -118,27 +124,36 @@ export const useProfiles = () => {
|
||||
});
|
||||
|
||||
if (!hasChange) {
|
||||
console.log("[ActivateSelected] 所有代理选择已经是目标状态,无需更新");
|
||||
console.log(
|
||||
"[ActivateSelected] All agent selections are already in the target state and do not need to be updated",
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`[ActivateSelected] 完成代理切换,保存新的选择配置`);
|
||||
console.log(
|
||||
`[ActivateSelected] Complete the proxy switch and save the new selection configuration`,
|
||||
);
|
||||
|
||||
try {
|
||||
await patchProfile(profileData.current!, { selected: newSelected });
|
||||
console.log("[ActivateSelected] 代理选择配置保存成功");
|
||||
console.log(
|
||||
"[ActivateSelected] Proxy selection configuration saved successfully",
|
||||
);
|
||||
|
||||
setTimeout(() => {
|
||||
mutate("getProxies", getProxies());
|
||||
}, 100);
|
||||
} catch (error: any) {
|
||||
console.error(
|
||||
"[ActivateSelected] 保存代理选择配置失败:",
|
||||
"[ActivateSelected] Failed to save proxy selection configuration:",
|
||||
error.message,
|
||||
);
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error("[ActivateSelected] 处理代理选择失败:", error.message);
|
||||
console.error(
|
||||
"[ActivateSelected] Handling proxy selection failure:",
|
||||
error.message,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -66,9 +66,9 @@ root.render(
|
||||
|
||||
// 错误处理
|
||||
window.addEventListener("error", (event) => {
|
||||
console.error("[main.tsx] 全局错误:", event.error);
|
||||
console.error("[main.tsx] Global error:", event.error);
|
||||
});
|
||||
|
||||
window.addEventListener("unhandledrejection", (event) => {
|
||||
console.error("[main.tsx] 未处理的Promise拒绝:", event.reason);
|
||||
console.error("[main.tsx] Unhandled promise rejection:", event.reason);
|
||||
});
|
||||
|
||||
@@ -88,13 +88,13 @@ export const AppDataProvider = ({
|
||||
const newProfileId = event.payload;
|
||||
const now = Date.now();
|
||||
|
||||
console.log(`[AppDataProvider] Profile切换事件: ${newProfileId}`);
|
||||
console.log(`[AppDataProvider] Profile switched: ${newProfileId}`);
|
||||
|
||||
if (
|
||||
lastProfileId === newProfileId &&
|
||||
now - lastUpdateTime < refreshThrottle
|
||||
) {
|
||||
console.log("[AppDataProvider] 重复事件被防抖,跳过");
|
||||
console.log("[AppDataProvider] Duplicate event debounced, skip");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ export const AppDataProvider = ({
|
||||
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
console.log("[AppDataProvider] 强制刷新代理缓存");
|
||||
console.log("[AppDataProvider] Force refresh proxy cache");
|
||||
|
||||
const refreshPromise = Promise.race([
|
||||
forceRefreshProxies(),
|
||||
@@ -117,15 +117,15 @@ export const AppDataProvider = ({
|
||||
|
||||
await refreshPromise;
|
||||
|
||||
console.log("[AppDataProvider] 刷新前端代理数据");
|
||||
console.log("[AppDataProvider] Refresh frontend proxy data");
|
||||
await refreshProxy();
|
||||
|
||||
console.log("[AppDataProvider] Profile切换的代理数据刷新完成");
|
||||
console.log("[AppDataProvider] Proxy data refreshed for profile switch");
|
||||
} catch (error) {
|
||||
console.error("[AppDataProvider] 强制刷新代理缓存失败:", error);
|
||||
console.error("[AppDataProvider] Force refresh proxy cache failed:", error);
|
||||
|
||||
refreshProxy().catch((e) =>
|
||||
console.warn("[AppDataProvider] 普通刷新也失败:", e),
|
||||
console.warn("[AppDataProvider] Normal refresh also failed:", e),
|
||||
);
|
||||
}
|
||||
}, 0);
|
||||
@@ -134,14 +134,14 @@ export const AppDataProvider = ({
|
||||
// 监听Clash配置刷新事件(enhance操作等)
|
||||
const handleRefreshClash = () => {
|
||||
const now = Date.now();
|
||||
console.log("[AppDataProvider] Clash配置刷新事件");
|
||||
console.log("[AppDataProvider] Clash config refresh event");
|
||||
|
||||
if (now - lastUpdateTime > refreshThrottle) {
|
||||
lastUpdateTime = now;
|
||||
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
console.log("[AppDataProvider] Clash刷新 - 强制刷新代理缓存");
|
||||
console.log("[AppDataProvider] Clash refresh - force refresh proxy cache");
|
||||
|
||||
// 添加超时保护
|
||||
const refreshPromise = Promise.race([
|
||||
@@ -158,11 +158,11 @@ export const AppDataProvider = ({
|
||||
await refreshProxy();
|
||||
} catch (error) {
|
||||
console.error(
|
||||
"[AppDataProvider] Clash刷新时强制刷新代理缓存失败:",
|
||||
"[AppDataProvider] Clash refresh forcing proxy cache refresh failed:",
|
||||
error,
|
||||
);
|
||||
refreshProxy().catch((e) =>
|
||||
console.warn("[AppDataProvider] Clash刷新普通刷新也失败:", e),
|
||||
console.warn("[AppDataProvider] Clash refresh normal refresh also failed:", e),
|
||||
);
|
||||
}
|
||||
}, 0);
|
||||
@@ -181,7 +181,7 @@ export const AppDataProvider = ({
|
||||
);
|
||||
};
|
||||
} catch (error) {
|
||||
console.error("[AppDataProvider] 事件监听器设置失败:", error);
|
||||
console.error("[AppDataProvider] Failed to set up event listeners:", error);
|
||||
return () => {};
|
||||
}
|
||||
};
|
||||
@@ -279,7 +279,7 @@ export const AppDataProvider = ({
|
||||
if (!server) return () => {};
|
||||
|
||||
console.log(
|
||||
`[Connections][${AppDataProvider.name}] 正在连接: ${server}/connections`,
|
||||
`[Connections][${AppDataProvider.name}] Connecting: ${server}/connections`,
|
||||
);
|
||||
const socket = createAuthSockette(`${server}/connections`, secret, {
|
||||
timeout: 5000,
|
||||
@@ -322,7 +322,7 @@ export const AppDataProvider = ({
|
||||
);
|
||||
} catch (err) {
|
||||
console.error(
|
||||
`[Connections][${AppDataProvider.name}] 解析数据错误:`,
|
||||
`[Connections][${AppDataProvider.name}] Failed to parse data:`,
|
||||
err,
|
||||
event.data,
|
||||
);
|
||||
@@ -330,26 +330,26 @@ export const AppDataProvider = ({
|
||||
},
|
||||
onopen: (event) => {
|
||||
console.log(
|
||||
`[Connections][${AppDataProvider.name}] WebSocket 连接已建立`,
|
||||
`[Connections][${AppDataProvider.name}] WebSocket connected`,
|
||||
event,
|
||||
);
|
||||
},
|
||||
onerror(event) {
|
||||
console.error(
|
||||
`[Connections][${AppDataProvider.name}] WebSocket 连接错误或达到最大重试次数`,
|
||||
`[Connections][${AppDataProvider.name}] WebSocket error or max retries reached`,
|
||||
event,
|
||||
);
|
||||
next(null, { connections: [], uploadTotal: 0, downloadTotal: 0 });
|
||||
},
|
||||
onclose: (event) => {
|
||||
console.log(
|
||||
`[Connections][${AppDataProvider.name}] WebSocket 连接关闭`,
|
||||
`[Connections][${AppDataProvider.name}] WebSocket closed`,
|
||||
event.code,
|
||||
event.reason,
|
||||
);
|
||||
if (event.code !== 1000 && event.code !== 1001) {
|
||||
console.warn(
|
||||
`[Connections][${AppDataProvider.name}] 连接非正常关闭,重置数据`,
|
||||
`[Connections][${AppDataProvider.name}] Abnormal close, resetting data`,
|
||||
);
|
||||
next(null, { connections: [], uploadTotal: 0, downloadTotal: 0 });
|
||||
}
|
||||
@@ -357,7 +357,7 @@ export const AppDataProvider = ({
|
||||
});
|
||||
|
||||
return () => {
|
||||
console.log(`[Connections][${AppDataProvider.name}] 清理WebSocket连接`);
|
||||
console.log(`[Connections][${AppDataProvider.name}] Cleaning up WebSocket connection`);
|
||||
socket.close();
|
||||
};
|
||||
},
|
||||
@@ -373,7 +373,7 @@ export const AppDataProvider = ({
|
||||
if (!server) return () => {};
|
||||
|
||||
console.log(
|
||||
`[Traffic][${AppDataProvider.name}] 正在连接: ${server}/traffic`,
|
||||
`[Traffic][${AppDataProvider.name}] Connecting: ${server}/traffic`,
|
||||
);
|
||||
const socket = createAuthSockette(`${server}/traffic`, secret, {
|
||||
onmessage(event) {
|
||||
@@ -387,13 +387,13 @@ export const AppDataProvider = ({
|
||||
next(null, data);
|
||||
} else {
|
||||
console.warn(
|
||||
`[Traffic][${AppDataProvider.name}] 收到无效数据:`,
|
||||
`[Traffic][${AppDataProvider.name}] Received invalid data:`,
|
||||
data,
|
||||
);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(
|
||||
`[Traffic][${AppDataProvider.name}] 解析数据错误:`,
|
||||
`[Traffic][${AppDataProvider.name}] Failed to parse data:`,
|
||||
err,
|
||||
event.data,
|
||||
);
|
||||
@@ -401,26 +401,26 @@ export const AppDataProvider = ({
|
||||
},
|
||||
onopen: (event) => {
|
||||
console.log(
|
||||
`[Traffic][${AppDataProvider.name}] WebSocket 连接已建立`,
|
||||
`[Traffic][${AppDataProvider.name}] WebSocket connected`,
|
||||
event,
|
||||
);
|
||||
},
|
||||
onerror(event) {
|
||||
console.error(
|
||||
`[Traffic][${AppDataProvider.name}] WebSocket 连接错误或达到最大重试次数`,
|
||||
`[Traffic][${AppDataProvider.name}] WebSocket error or max retries reached`,
|
||||
event,
|
||||
);
|
||||
next(null, { up: 0, down: 0 });
|
||||
},
|
||||
onclose: (event) => {
|
||||
console.log(
|
||||
`[Traffic][${AppDataProvider.name}] WebSocket 连接关闭`,
|
||||
`[Traffic][${AppDataProvider.name}] WebSocket closed`,
|
||||
event.code,
|
||||
event.reason,
|
||||
);
|
||||
if (event.code !== 1000 && event.code !== 1001) {
|
||||
console.warn(
|
||||
`[Traffic][${AppDataProvider.name}] 连接非正常关闭,重置数据`,
|
||||
`[Traffic][${AppDataProvider.name}] Abnormal close, resetting data`,
|
||||
);
|
||||
next(null, { up: 0, down: 0 });
|
||||
}
|
||||
@@ -428,7 +428,7 @@ export const AppDataProvider = ({
|
||||
});
|
||||
|
||||
return () => {
|
||||
console.log(`[Traffic][${AppDataProvider.name}] 清理WebSocket连接`);
|
||||
console.log(`[Traffic][${AppDataProvider.name}] Cleaning up WebSocket connection`);
|
||||
socket.close();
|
||||
};
|
||||
},
|
||||
@@ -443,7 +443,7 @@ export const AppDataProvider = ({
|
||||
if (!server) return () => {};
|
||||
|
||||
console.log(
|
||||
`[Memory][${AppDataProvider.name}] 正在连接: ${server}/memory`,
|
||||
`[Memory][${AppDataProvider.name}] Connecting: ${server}/memory`,
|
||||
);
|
||||
const socket = createAuthSockette(`${server}/memory`, secret, {
|
||||
onmessage(event) {
|
||||
@@ -453,13 +453,13 @@ export const AppDataProvider = ({
|
||||
next(null, data);
|
||||
} else {
|
||||
console.warn(
|
||||
`[Memory][${AppDataProvider.name}] 收到无效数据:`,
|
||||
`[Memory][${AppDataProvider.name}] Received invalid data:`,
|
||||
data,
|
||||
);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(
|
||||
`[Memory][${AppDataProvider.name}] 解析数据错误:`,
|
||||
`[Memory][${AppDataProvider.name}] Failed to parse data:`,
|
||||
err,
|
||||
event.data,
|
||||
);
|
||||
@@ -467,26 +467,26 @@ export const AppDataProvider = ({
|
||||
},
|
||||
onopen: (event) => {
|
||||
console.log(
|
||||
`[Memory][${AppDataProvider.name}] WebSocket 连接已建立`,
|
||||
`[Memory][${AppDataProvider.name}] WebSocket connected`,
|
||||
event,
|
||||
);
|
||||
},
|
||||
onerror(event) {
|
||||
console.error(
|
||||
`[Memory][${AppDataProvider.name}] WebSocket 连接错误或达到最大重试次数`,
|
||||
`[Memory][${AppDataProvider.name}] WebSocket error or max retries reached`,
|
||||
event,
|
||||
);
|
||||
next(null, { inuse: 0 });
|
||||
},
|
||||
onclose: (event) => {
|
||||
console.log(
|
||||
`[Memory][${AppDataProvider.name}] WebSocket 连接关闭`,
|
||||
`[Memory][${AppDataProvider.name}] WebSocket closed`,
|
||||
event.code,
|
||||
event.reason,
|
||||
);
|
||||
if (event.code !== 1000 && event.code !== 1001) {
|
||||
console.warn(
|
||||
`[Memory][${AppDataProvider.name}] 连接非正常关闭,重置数据`,
|
||||
`[Memory][${AppDataProvider.name}] Abnormal close, resetting data`,
|
||||
);
|
||||
next(null, { inuse: 0 });
|
||||
}
|
||||
@@ -494,7 +494,7 @@ export const AppDataProvider = ({
|
||||
});
|
||||
|
||||
return () => {
|
||||
console.log(`[Memory][${AppDataProvider.name}] 清理WebSocket连接`);
|
||||
console.log(`[Memory][${AppDataProvider.name}] Cleaning up WebSocket connection`);
|
||||
socket.close();
|
||||
};
|
||||
},
|
||||
@@ -521,13 +521,13 @@ export const AppDataProvider = ({
|
||||
const isPacMode = verge.proxy_auto_config ?? false;
|
||||
|
||||
if (isPacMode) {
|
||||
// PAC模式:显示我们期望设置的代理地址
|
||||
// PAC mode: show expected proxy address
|
||||
const proxyHost = verge.proxy_host || "127.0.0.1";
|
||||
const proxyPort =
|
||||
verge.verge_mixed_port || clashConfig["mixed-port"] || 7897;
|
||||
return `${proxyHost}:${proxyPort}`;
|
||||
} else {
|
||||
// HTTP代理模式:优先使用系统地址,但如果格式不正确则使用期望地址
|
||||
// HTTP proxy mode: prefer system address, else fallback to expected address
|
||||
const systemServer = sysproxy?.server;
|
||||
if (
|
||||
systemServer &&
|
||||
@@ -536,7 +536,7 @@ export const AppDataProvider = ({
|
||||
) {
|
||||
return systemServer;
|
||||
} else {
|
||||
// 系统地址无效,返回期望的代理地址
|
||||
// Invalid system address; return expected proxy address
|
||||
const proxyHost = verge.proxy_host || "127.0.0.1";
|
||||
const proxyPort =
|
||||
verge.verge_mixed_port || clashConfig["mixed-port"] || 7897;
|
||||
@@ -612,7 +612,7 @@ export const useAppData = () => {
|
||||
const context = useContext(AppDataContext);
|
||||
|
||||
if (!context) {
|
||||
throw new Error("useAppData必须在AppDataProvider内使用");
|
||||
throw new Error("useAppData must be used within AppDataProvider");
|
||||
}
|
||||
|
||||
return context;
|
||||
|
||||
@@ -279,13 +279,13 @@ export const getGroupProxyDelays = async (
|
||||
};
|
||||
|
||||
console.log(
|
||||
`[API] 获取代理组延迟,组: ${groupName}, URL: ${params.url}, 超时: ${params.timeout}ms`,
|
||||
`[API] Get proxy group delay, group: ${groupName}, URL: ${params.url}, timeout: ${params.timeout}ms`,
|
||||
);
|
||||
|
||||
try {
|
||||
const instance = await getAxios();
|
||||
console.log(
|
||||
`[API] 发送HTTP请求: GET /group/${encodeURIComponent(groupName)}/delay`,
|
||||
`[API] Send HTTP request: GET /group/${encodeURIComponent(groupName)}/delay`,
|
||||
);
|
||||
|
||||
const result = await instance.get(
|
||||
@@ -294,12 +294,12 @@ export const getGroupProxyDelays = async (
|
||||
);
|
||||
|
||||
console.log(
|
||||
`[API] 获取代理组延迟成功,组: ${groupName}, 结果数量:`,
|
||||
`[API] Get proxy group delay success, group: ${groupName}, result count:`,
|
||||
Object.keys(result || {}).length,
|
||||
);
|
||||
return result as any as Record<string, number>;
|
||||
} catch (error) {
|
||||
console.error(`[API] 获取代理组延迟失败,组: ${groupName}`, error);
|
||||
console.error(`[API] Get proxy group delay failed, group: ${groupName}`, error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
@@ -476,7 +476,7 @@ export const getIpInfo = async (): Promise<IpInfo> => {
|
||||
// 配置参数
|
||||
const maxRetries = 3;
|
||||
const serviceTimeout = 5000;
|
||||
const overallTimeout = 20000; // 增加总超时时间以容纳延迟
|
||||
const overallTimeout = 20000; // increase total timeout to accommodate delays
|
||||
|
||||
const overallTimeoutController = new AbortController();
|
||||
const overallTimeoutId = setTimeout(() => {
|
||||
@@ -488,7 +488,7 @@ export const getIpInfo = async (): Promise<IpInfo> => {
|
||||
let lastError: Error | null = null;
|
||||
|
||||
for (const service of shuffledServices) {
|
||||
console.log(`尝试IP检测服务: ${service.url}`);
|
||||
console.log(`Trying IP detection service: ${service.url}`);
|
||||
|
||||
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
||||
let timeoutId: ReturnType<typeof setTimeout> | null = null;
|
||||
@@ -508,17 +508,17 @@ export const getIpInfo = async (): Promise<IpInfo> => {
|
||||
if (timeoutId) clearTimeout(timeoutId);
|
||||
|
||||
if (response.data && response.data.ip) {
|
||||
console.log(`IP检测成功,使用服务: ${service.url}`);
|
||||
console.log(`IP detection succeeded, using service: ${service.url}`);
|
||||
return service.mapping(response.data);
|
||||
} else {
|
||||
throw new Error(`无效的响应格式 from ${service.url}`);
|
||||
throw new Error(`Invalid response format from ${service.url}`);
|
||||
}
|
||||
} catch (error: any) {
|
||||
if (timeoutId) clearTimeout(timeoutId);
|
||||
|
||||
lastError = error;
|
||||
console.log(
|
||||
`尝试 ${attempt + 1}/${maxRetries} 失败 (${service.url}):`,
|
||||
`Attempt ${attempt + 1}/${maxRetries} failed (${service.url}):`,
|
||||
error.message,
|
||||
);
|
||||
|
||||
@@ -534,9 +534,9 @@ export const getIpInfo = async (): Promise<IpInfo> => {
|
||||
}
|
||||
|
||||
if (lastError) {
|
||||
throw new Error(`所有IP检测服务都失败: ${lastError.message}`);
|
||||
throw new Error(`All IP detection services failed: ${lastError.message}`);
|
||||
} else {
|
||||
throw new Error("没有可用的IP检测服务");
|
||||
throw new Error("No available IP detection services");
|
||||
}
|
||||
} finally {
|
||||
clearTimeout(overallTimeoutId);
|
||||
|
||||
@@ -112,15 +112,15 @@ export async function getSystemProxy() {
|
||||
|
||||
export async function getAutotemProxy() {
|
||||
try {
|
||||
console.log("[API] 开始调用 get_auto_proxy");
|
||||
console.log("[API] Start calling get_auto_proxy");
|
||||
const result = await invoke<{
|
||||
enable: boolean;
|
||||
url: string;
|
||||
}>("get_auto_proxy");
|
||||
console.log("[API] get_auto_proxy 调用成功:", result);
|
||||
console.log("[API] get_auto_proxy success:", result);
|
||||
return result;
|
||||
} catch (error) {
|
||||
console.error("[API] get_auto_proxy 调用失败:", error);
|
||||
console.error("[API] get_auto_proxy failed:", error);
|
||||
return {
|
||||
enable: false,
|
||||
url: "",
|
||||
@@ -132,7 +132,7 @@ export async function getAutoLaunchStatus() {
|
||||
try {
|
||||
return await invoke<boolean>("get_auto_launch_status");
|
||||
} catch (error) {
|
||||
console.error("获取自启动状态失败:", error);
|
||||
console.error("Failed to get auto-launch state:", error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -195,7 +195,7 @@ export async function cmdGetProxyDelay(
|
||||
// 确保URL不为空
|
||||
const testUrl = url || "https://cp.cloudflare.com/generate_204";
|
||||
console.log(
|
||||
`[API] 调用延迟测试API,代理: ${name}, 超时: ${timeout}ms, URL: ${testUrl}`,
|
||||
`[API] Calling delay test API, proxy: ${name}, timeout: ${timeout}ms, URL: ${testUrl}`,
|
||||
);
|
||||
|
||||
try {
|
||||
@@ -212,19 +212,19 @@ export async function cmdGetProxyDelay(
|
||||
// 验证返回结果中是否有delay字段,并且值是一个有效的数字
|
||||
if (result && typeof result.delay === "number") {
|
||||
console.log(
|
||||
`[API] 延迟测试API调用成功,代理: ${name}, 延迟: ${result.delay}ms`,
|
||||
`[API] Delay test API success, proxy: ${name}, delay: ${result.delay}ms`,
|
||||
);
|
||||
return result;
|
||||
} else {
|
||||
console.error(
|
||||
`[API] 延迟测试API返回无效结果,代理: ${name}, 结果:`,
|
||||
`[API] Delay test API returned invalid result, proxy: ${name}, result:`,
|
||||
result,
|
||||
);
|
||||
// 返回一个有效的结果对象,但标记为超时
|
||||
return { delay: 1e6 };
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`[API] 延迟测试API调用失败,代理: ${name}`, error);
|
||||
console.error(`[API] Delay test API failed, proxy: ${name}`, error);
|
||||
// 返回一个有效的结果对象,但标记为错误
|
||||
return { delay: 1e6 };
|
||||
}
|
||||
@@ -232,7 +232,7 @@ export async function cmdGetProxyDelay(
|
||||
|
||||
/// 用于profile切换等场景
|
||||
export async function forceRefreshProxies() {
|
||||
console.log("[API] 强制刷新代理缓存");
|
||||
console.log("[API] Force refresh proxy cache");
|
||||
return invoke<any>("force_refresh_proxies");
|
||||
}
|
||||
|
||||
@@ -392,7 +392,7 @@ export const isAdmin = async () => {
|
||||
try {
|
||||
return await invoke<boolean>("is_admin");
|
||||
} catch (error) {
|
||||
console.error("检查管理员权限失败:", error);
|
||||
console.error("Failed to check admin privileges:", error);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -83,10 +83,10 @@ export const initGlobalLogService = (
|
||||
|
||||
// 创建新的WebSocket连接,使用新的认证方法
|
||||
const wsUrl = buildWSUrl(server, logLevel);
|
||||
console.log(`[GlobalLog] 正在连接日志服务: ${wsUrl}`);
|
||||
console.log(`[GlobalLog] Connecting to log service: ${wsUrl}`);
|
||||
|
||||
if (!server) {
|
||||
console.warn("[GlobalLog] 服务器地址为空,无法建立连接");
|
||||
console.warn("[GlobalLog] Server URL is empty, cannot establish connection");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -98,11 +98,11 @@ export const initGlobalLogService = (
|
||||
const time = dayjs().format("MM-DD HH:mm:ss");
|
||||
appendLog({ ...data, time });
|
||||
} catch (error) {
|
||||
console.error("[GlobalLog] 解析日志数据失败:", error);
|
||||
console.error("[GlobalLog] Failed to parse log data:", error);
|
||||
}
|
||||
},
|
||||
onerror(event) {
|
||||
console.error("[GlobalLog] WebSocket连接错误", event);
|
||||
console.error("[GlobalLog] WebSocket connection error", event);
|
||||
|
||||
// 记录错误状态但不关闭连接,让重连机制起作用
|
||||
useGlobalLogStore.setState({ isConnected: false });
|
||||
@@ -114,16 +114,16 @@ export const initGlobalLogService = (
|
||||
"type" in event &&
|
||||
event.type === "error"
|
||||
) {
|
||||
console.error("[GlobalLog] 连接已彻底失败,关闭连接");
|
||||
console.error("[GlobalLog] Connection exhausted retries, closing");
|
||||
closeGlobalLogConnection();
|
||||
}
|
||||
},
|
||||
onclose(event) {
|
||||
console.log("[GlobalLog] WebSocket连接关闭", event);
|
||||
console.log("[GlobalLog] WebSocket connection closed", event);
|
||||
useGlobalLogStore.setState({ isConnected: false });
|
||||
},
|
||||
onopen(event) {
|
||||
console.log("[GlobalLog] WebSocket连接已建立", event);
|
||||
console.log("[GlobalLog] WebSocket connection established", event);
|
||||
useGlobalLogStore.setState({ isConnected: true });
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user