diff --git a/src/renderer/pages/search/subpages/settings.vue b/src/renderer/pages/search/subpages/settings.vue index c6583e6..397314f 100644 --- a/src/renderer/pages/search/subpages/settings.vue +++ b/src/renderer/pages/search/subpages/settings.vue @@ -55,17 +55,6 @@
长按以下设置的毫秒响应
-
-
百度搜索配置
- - - - - - - - -
diff --git a/static/plugins/superPanel/index.html b/static/plugins/superPanel/index.html index 3166fc9..7b7dc82 100644 --- a/static/plugins/superPanel/index.html +++ b/static/plugins/superPanel/index.html @@ -79,6 +79,50 @@ display: flex; align-items: center; } + + + .spinner { + padding-left: 10px; + } + + .spinner > div { + width: 10px; + height: 10px; + background-color: #ddd; + + border-radius: 100%; + display: inline-block; + -webkit-animation: bouncedelay 1.4s infinite ease-in-out; + animation: bouncedelay 1.4s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + } + + .spinner .bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; + } + + .spinner .bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; + } + + @-webkit-keyframes bouncedelay { + 0%, 80%, 100% { -webkit-transform: scale(0.0) } + 40% { -webkit-transform: scale(1.0) } + } + + @keyframes bouncedelay { + 0%, 80%, 100% { + transform: scale(0.0); + -webkit-transform: scale(0.0); + } 40% { + transform: scale(1.0); + -webkit-transform: scale(1.0); + } + } @@ -87,10 +131,22 @@ 选择的文本 {{selectData.text.length}} 个
-
-
-
{{trans.src}}
-
n. {{trans.dst}}
+
+
+
+
+
+
+
{{selectData.translate.src}}
+
+
+ {{item}} +
+
+
+
+ {{item}} +
diff --git a/static/plugins/superPanel/index.js b/static/plugins/superPanel/index.js index b4618c7..c72243b 100644 --- a/static/plugins/superPanel/index.js +++ b/static/plugins/superPanel/index.js @@ -1,14 +1,10 @@ const {ipcRenderer, nativeImage, remote, clipboard} = require('electron') -const md5 = require("md5"); const rp = require("request-promise"); -const isChinese = require('is-chinese'); const path = require('path'); const fs = require('fs'); const { spawn } = require ('child_process'); const mineType = require("mime-types"); -const opConfig = remote.getGlobal('opConfig'); - new Vue({ el: '#app', data: { @@ -66,6 +62,7 @@ new Vue({ ] }, targetOptions: [], + loading: false, }, created() { // 简单唤起超级面板 @@ -74,9 +71,9 @@ new Vue({ const ext = path.extname(this.selectData.fileUrl); // 剪切板只有文本时,显示翻译 if (!this.selectData.fileUrl) { + this.loading = true; const word = this.selectData.text; - const isCh = isChinese(word); - this.translate(word, isCh ? 'en' : 'zh'); + this.translate(word); this.targetOptions = JSON.parse(JSON.stringify(this.options.translate)); (this.selectData.optionPlugin || []).forEach(plugin => { plugin.features.forEach(fe => { @@ -172,20 +169,20 @@ new Vue({ }, methods: { - translate(msg, to) { - const {appid, key} = opConfig.get().superPanel.baiduAPI; - if (!appid || !key) return; - const q = msg; - const salt = parseInt(Math.random() * 1000000000); //加盐 - const sign = md5(appid + q + salt + key); //生成签名 + translate(msg) { const params = encodeURI( - `q=${q}&from=auto&to=${to}&appid=${appid}&salt=${salt}&sign=${sign}` + `q=${msg}&keyfrom=neverland&key=969918857&type=data&doctype=json&version=1.1` ); const options = { - uri: `https://fanyi-api.baidu.com/api/trans/vip/translate?${params}`, + uri: `http://fanyi.youdao.com/openapi.do?${params}`, }; return rp(options).then((res) => { - this.$set(this.selectData, 'translate', JSON.parse(res).trans_result) + this.$set(this.selectData, 'translate', { + ...JSON.parse(res), + src: msg, + }); + }).finally(() => { + this.loading = false; }) }, commonClick(item, fileUrl) {