Compare commits

..

7 Commits

Author SHA1 Message Date
Gabe Yuan
3e9338be0e v1.5.2 2023-08-21 22:24:42 +08:00
Gabe Yuan
ef7f1ad638 fetch subrules use unsafe fetch 2023-08-21 21:35:53 +08:00
Gabe Yuan
1f10ebe404 fetch subrules use unsafe fetch 2023-08-21 21:31:20 +08:00
Gabe Yuan
f4a8251c61 add shortcut: Toggle Style 2023-08-21 16:06:21 +08:00
Gabe Yuan
f585a43480 v1.5.1 2023-08-21 14:52:57 +08:00
Gabe Yuan
3a11465c24 fix stack useFlexGap 2023-08-21 14:43:22 +08:00
Gabe Yuan
3c3ebdf96c add command shortcuts & menu command 2023-08-21 14:03:39 +08:00
16 changed files with 108 additions and 9 deletions

2
.env
View File

@@ -2,7 +2,7 @@ GENERATE_SOURCEMAP=false
REACT_APP_NAME=KISS Translator
REACT_APP_NAME_CN=简约翻译
REACT_APP_VERSION=1.5.0
REACT_APP_VERSION=1.5.2
REACT_APP_HOMEPAGE=https://github.com/fishjar/kiss-translator
REACT_APP_OPTIONSPAGE=https://kiss-translator.rayjar.com/options
REACT_APP_OPTIONSPAGE2=https://fishjar.github.io/kiss-translator/options.html

View File

@@ -84,6 +84,7 @@ const userscriptWebpack = (config, env) => {
// @downloadURL ${process.env.REACT_APP_USERSCRIPT_DOWNLOADURL}
// @updateURL ${process.env.REACT_APP_USERSCRIPT_DOWNLOADURL}
// @grant GM.xmlHttpRequest
// @grant GM.registerMenuCommand
// @grant GM.setValue
// @grant GM.getValue
// @grant GM.deleteValue
@@ -97,6 +98,7 @@ const userscriptWebpack = (config, env) => {
// @connect github.io
// @connect githubusercontent.com
// @connect kiss-translator.rayjar.com
// @connect ghproxy.com
// @run-at document-end
// ==/UserScript==

View File

@@ -1,7 +1,7 @@
{
"name": "kiss-translator",
"description": "A minimalist bilingual translation Extension & Greasemonkey Script",
"version": "1.5.0",
"version": "1.5.2",
"author": "Gabe<yugang2002@gmail.com>",
"private": true,
"dependencies": {

View File

@@ -4,5 +4,11 @@
},
"app_description": {
"message": "A minimalist bilingual translation Extension & Greasemonkey Script"
},
"toggle_translate": {
"message": "Toggle Translate"
},
"toggle_style": {
"message": "Toggle Style"
}
}

View File

@@ -4,5 +4,11 @@
},
"app_description": {
"message": "一个简约的双语网页翻译扩展 & 油猴脚本"
},
"toggle_translate": {
"message": "切换翻译"
},
"toggle_style": {
"message": "切换样式"
}
}

View File

@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "__MSG_app_name__",
"description": "__MSG_app_description__",
"version": "1.5.0",
"version": "1.5.2",
"default_locale": "en",
"author": "Gabe<yugang2002@gmail.com>",
"homepage_url": "https://github.com/fishjar/kiss-translator",
@@ -15,6 +15,20 @@
"matches": ["<all_urls>"]
}
],
"commands": {
"toggleTranslate": {
"suggested_key": {
"default": "Alt+Q"
},
"description": "__MSG_toggle_translate__"
},
"toggleStyle": {
"suggested_key": {
"default": "Alt+C"
},
"description": "__MSG_toggle_style__"
}
},
"permissions": ["<all_urls>", "storage"],
"icons": {
"16": "images/logo16.png",

View File

@@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "__MSG_app_name__",
"description": "__MSG_app_description__",
"version": "1.5.0",
"version": "1.5.2",
"default_locale": "en",
"author": "Gabe<yugang2002@gmail.com>",
"homepage_url": "https://github.com/fishjar/kiss-translator",
@@ -16,6 +16,20 @@
"matches": ["<all_urls>"]
}
],
"commands": {
"toggleTranslate": {
"suggested_key": {
"default": "Alt+Q"
},
"description": "__MSG_toggle_translate__"
},
"toggleStyle": {
"suggested_key": {
"default": "Alt+C"
},
"description": "__MSG_toggle_style__"
}
},
"permissions": ["storage"],
"host_permissions": ["<all_urls>"],
"icons": {

View File

@@ -3,6 +3,10 @@ import {
MSG_FETCH,
MSG_FETCH_LIMIT,
MSG_FETCH_CLEAR,
MSG_TRANS_TOGGLE,
MSG_TRANS_TOGGLE_STYLE,
CMD_TOGGLE_TRANSLATE,
CMD_TOGGLE_STYLE,
DEFAULT_SETTING,
DEFAULT_RULES,
DEFAULT_SYNC,
@@ -15,6 +19,7 @@ import storage from "./libs/storage";
import { getSetting } from "./libs";
import { syncAll } from "./libs/sync";
import { fetchData, fetchPool } from "./libs/fetch";
import { sendTabMsg } from "./libs/msg";
/**
* 插件安装
@@ -74,3 +79,19 @@ browser.runtime.onMessage.addListener(
return true;
}
);
/**
* 监听快捷键
*/
browser.commands.onCommand.addListener((command) => {
// console.log(`Command: ${command}`);
switch (command) {
case CMD_TOGGLE_TRANSLATE:
sendTabMsg(MSG_TRANS_TOGGLE);
break;
case CMD_TOGGLE_STYLE:
sendTabMsg(MSG_TRANS_TOGGLE_STYLE);
break;
default:
}
});

View File

@@ -18,6 +18,9 @@ export const STOKEY_SYNC = `${APP_NAME}_sync`;
export const STOKEY_FAB = `${APP_NAME}_fab`;
export const STOKEY_RULESCACHE_PREFIX = `${APP_NAME}_rulescache_`;
export const CMD_TOGGLE_TRANSLATE = "toggleTranslate";
export const CMD_TOGGLE_STYLE = "toggleStyle";
export const CLIENT_WEB = "web";
export const CLIENT_CHROME = "chrome";
export const CLIENT_EDGE = "edge";
@@ -37,6 +40,7 @@ export const MSG_FETCH = "fetch";
export const MSG_FETCH_LIMIT = "fetch_limit";
export const MSG_FETCH_CLEAR = "fetch_clear";
export const MSG_TRANS_TOGGLE = "trans_toggle";
export const MSG_TRANS_TOGGLE_STYLE = "trans_toggle_style";
export const MSG_TRANS_GETRULE = "trans_getrule";
export const MSG_TRANS_PUTRULE = "trans_putrule";
export const MSG_TRANS_CURRULE = "trans_currule";

View File

@@ -1,6 +1,7 @@
import { browser } from "./libs/browser";
import {
MSG_TRANS_TOGGLE,
MSG_TRANS_TOGGLE_STYLE,
MSG_TRANS_GETRULE,
MSG_TRANS_PUTRULE,
} from "./config";
@@ -22,6 +23,9 @@ import { Translator } from "./libs/translator";
case MSG_TRANS_TOGGLE:
translator.toggle();
break;
case MSG_TRANS_TOGGLE_STYLE:
translator.toggleStyle();
break;
case MSG_TRANS_GETRULE:
break;
case MSG_TRANS_PUTRULE:

View File

@@ -66,7 +66,7 @@ export const checkRules = (rules) => {
*/
export const rulesCache = {
fetch: async (url) => {
const res = await fetchPolyfill(url);
const res = await fetchPolyfill(url, null, { useUnsafe: true });
const rules = checkRules(res).filter(
(rule) => rule.pattern.replaceAll(GLOBAL_KEY, "") !== ""
);

View File

@@ -72,7 +72,7 @@ export const syncRules = async () => {
});
}
} catch (err) {
console.log("[sync rules]", err);
console.log("[sync user rules]", err);
}
};

View File

@@ -5,6 +5,8 @@ import {
TRANS_MAX_LENGTH,
EVENT_KISS,
MSG_TRANS_CURRULE,
OPT_STYLE_DASHLINE,
OPT_STYLE_FUZZY,
} from "../config";
import { queryEls } from ".";
import Content from "../views/Content";
@@ -86,6 +88,14 @@ export class Translator {
}
};
toggleStyle = () => {
const textStyle =
this.rule.textStyle === OPT_STYLE_FUZZY
? OPT_STYLE_DASHLINE
: OPT_STYLE_FUZZY;
this.rule = { ...this.rule, textStyle };
};
_register = () => {
// 监听节点变化
this._mutaObserver.observe(document, {

View File

@@ -54,4 +54,20 @@ import { Translator } from "./libs/translator";
</CacheProvider>
</React.StrictMode>
);
// 注册菜单
GM.registerMenuCommand(
"Toggle Translate",
(event) => {
translator.toggle();
},
"Q"
);
GM.registerMenuCommand(
"Toggle Style",
(event) => {
translator.toggleStyle();
},
"C"
);
})();

View File

@@ -112,7 +112,9 @@ export default function Action({ translator, fab }) {
}
>
<Paper>
{showPopup && (
<Popup setShowPopup={setShowPopup} translator={translator} />
)}
</Paper>
</Draggable>
<Draggable

View File

@@ -479,7 +479,7 @@ function UserRules() {
return (
<Stack spacing={3}>
<Stack direction="row" spacing={2}>
<Stack direction="row" spacing={2} useFlexGap flexWrap="wrap">
<Button
size="small"
variant="contained"
@@ -548,7 +548,7 @@ function SubRulesItem({ index, url, selectedUrl, subrules, setRules }) {
setRules(rules);
}
} catch (err) {
console.log("[sync rules]", err);
console.log("[sync sub rules]", err);
} finally {
setLoading(false);
}