在基本设置页面增加接口请求超时时间设置
This commit is contained in:
@@ -194,6 +194,10 @@ export const I18N = {
|
||||
zh: `重新翻译间隔时间 (100-5000ms)`,
|
||||
en: `Retranslation Interval (100-5000ms)`,
|
||||
},
|
||||
http_timeout: {
|
||||
zh: `请求超时时间 (5000-30000ms)`,
|
||||
en: `Request Timeout Time (5000-30000ms)`,
|
||||
},
|
||||
min_translate_length: {
|
||||
zh: `最小翻译字符数 (1-100)`,
|
||||
en: `Minimum number Of Translated Characters (1-100)`,
|
||||
|
||||
@@ -641,6 +641,7 @@ export const DEFAULT_SHORTCUTS = {
|
||||
export const TRANS_MIN_LENGTH = 5; // 最短翻译长度
|
||||
export const TRANS_MAX_LENGTH = 5000; // 最长翻译长度
|
||||
export const TRANS_NEWLINE_LENGTH = 20; // 换行字符数
|
||||
export const HTTP_TIMEOUT = 5000; // 调用超时时间
|
||||
export const DEFAULT_BLACKLIST = [
|
||||
"https://fishjar.github.io/kiss-translator/options.html",
|
||||
"https://translate.google.com",
|
||||
@@ -658,6 +659,7 @@ export const DEFAULT_SETTING = {
|
||||
minLength: TRANS_MIN_LENGTH,
|
||||
maxLength: TRANS_MAX_LENGTH,
|
||||
newlineLength: TRANS_NEWLINE_LENGTH,
|
||||
httpTimeout: HTTP_TIMEOUT,
|
||||
clearCache: false, // 是否在浏览器下次启动时清除缓存
|
||||
injectRules: true, // 是否注入订阅规则
|
||||
// injectWebfix: true, // 是否注入修复补丁(作废)
|
||||
|
||||
@@ -1,19 +1,23 @@
|
||||
import { isExt, isGm } from "./client";
|
||||
import { sendBgMsg } from "./msg";
|
||||
import { taskPool } from "./pool";
|
||||
import { storage,getSettingWithDefault } from "./storage";
|
||||
|
||||
|
||||
import {
|
||||
MSG_FETCH,
|
||||
MSG_GET_HTTPCACHE,
|
||||
CACHE_NAME,
|
||||
DEFAULT_FETCH_INTERVAL,
|
||||
DEFAULT_FETCH_LIMIT,
|
||||
HTTP_TIMEOUT,
|
||||
} from "../config";
|
||||
import { isBg } from "./browser";
|
||||
import { genTransReq } from "../apis/trans";
|
||||
import { kissLog } from "./log";
|
||||
import { blobToBase64 } from "./utils";
|
||||
|
||||
const TIMEOUT = 5000;
|
||||
let TIMEOUT = HTTP_TIMEOUT;
|
||||
|
||||
/**
|
||||
* 构造缓存 request
|
||||
@@ -39,7 +43,8 @@ const newCacheReq = async (input, init) => {
|
||||
* @param {*} init
|
||||
* @returns
|
||||
*/
|
||||
export const fetchGM = async (input, { method = "GET", headers, body } = {}) =>
|
||||
export const fetchGM = async (input, { method = "GET", headers, body } = {}) =>{
|
||||
TIMEOUT = (await getSettingWithDefault()).httpTimeout;
|
||||
new Promise((resolve, reject) => {
|
||||
GM.xmlHttpRequest({
|
||||
method,
|
||||
@@ -66,7 +71,7 @@ export const fetchGM = async (input, { method = "GET", headers, body } = {}) =>
|
||||
onerror: reject,
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
/**
|
||||
* 发起请求
|
||||
* @param {*} param0
|
||||
@@ -108,6 +113,10 @@ export const fetchPatcher = async (input, init, transOpts, apiSetting) => {
|
||||
}
|
||||
}
|
||||
|
||||
//const kiss_setting = await storage.get("KISS-Translator_setting");
|
||||
//TIMEOUT = JSON.parse(kiss_setting)?.httpTimeout || TIMEOUT;
|
||||
TIMEOUT = (await getSettingWithDefault()).httpTimeout;
|
||||
console.log("TIMEOUT", TIMEOUT);
|
||||
if (AbortSignal?.timeout && !init.signal) {
|
||||
Object.assign(init, { signal: AbortSignal.timeout(TIMEOUT) });
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import {
|
||||
DEFAULT_CSPLIST,
|
||||
MSG_CONTEXT_MENUS,
|
||||
MSG_UPDATE_CSP,
|
||||
HTTP_TIMEOUT,
|
||||
} from "../../config";
|
||||
import { useShortcut } from "../../hooks/Shortcut";
|
||||
import ShortcutInput from "./ShortcutInput";
|
||||
@@ -71,6 +72,9 @@ export default function Settings() {
|
||||
case "newlineLength":
|
||||
value = limitNumber(value, 1, 1000);
|
||||
break;
|
||||
case "httpTimeout":
|
||||
value = limitNumber(value, 5000, 30000);
|
||||
break;
|
||||
case "touchTranslate":
|
||||
value = limitNumber(value, 0, 4);
|
||||
break;
|
||||
@@ -110,6 +114,7 @@ export default function Settings() {
|
||||
maxLength,
|
||||
clearCache,
|
||||
newlineLength = TRANS_NEWLINE_LENGTH,
|
||||
httpTimeout = HTTP_TIMEOUT,
|
||||
contextMenuType = 1,
|
||||
touchTranslate = 2,
|
||||
blacklist = DEFAULT_BLACKLIST.join(",\n"),
|
||||
@@ -188,7 +193,14 @@ export default function Settings() {
|
||||
defaultValue={transInterval}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
|
||||
<TextField
|
||||
size="small"
|
||||
label={i18n("http_timeout")}
|
||||
type="number"
|
||||
name="httpTimeout"
|
||||
defaultValue={httpTimeout}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
<FormControl size="small">
|
||||
<InputLabel>{i18n("touch_translate_shortcut")}</InputLabel>
|
||||
<Select
|
||||
|
||||
Reference in New Issue
Block a user