diff --git a/.jshintrc b/.jshintrc
index 46b6230..7fbfc20 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -1,3 +1,4 @@
+
{
"camelcase": true,
"curly": true,
diff --git a/ChaZD.crx b/ChaZD.crx
deleted file mode 100644
index f02cc13..0000000
Binary files a/ChaZD.crx and /dev/null differ
diff --git a/Gruntfile.js b/Gruntfile.js
index 70ca8f5..20d96f5 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -38,6 +38,7 @@ module.exports = function(grunt) {
}
},
+
uglify: {
options: {
sourceMap: false
diff --git a/public/js/background.min.js b/public/js/background.min.js
index 25e9a0e..b59bcc7 100644
--- a/public/js/background.min.js
+++ b/public/js/background.min.js
@@ -1 +1 @@
-function ChaZD(a,b,c,d){this.wordSource=c,this.useHttps=b;var e=(b?urls.dictHttps:urls.dict)+a,f=this,g=new XMLHttpRequest;g.open("GET",e,!0),g.onreadystatechange=function(){if(4==g.readyState){var e=JSON.parse(g.responseText);if(-1===a.indexOf("-")||f.checkErrorCode(e.errorCode).error||f.haveTranslation(e)){var h=f.parseResult.call(f,e);d(h)}else new ChaZD(a.replace(/-/g," "),b,c,d)}},g.send()}function preprocessWord(a){return-1===a.indexOf(" ")&&(a=a.replace(/_/g," "),/[a-z]+/.test(a)&&(a=trim(a.replace(/([A-Z])/g," $1")))),a}function showNotification(a){if(Notifications){var b=null,c=Notifications.checkPermission();return 0===c?(b=Notifications.createNotification(a.icon||chrome.extension.getURL("icons/icon128.png"),a.title||"ChaZD 查字典",a.content),b.onclick=function(){window.open("https://chrome.google.com/webstore/detail/chazd/nkiipedegbhbjmajlhpegcpcaacbfggp")},b.show()):Notifications.requestPermission(),b}}ChaZD.prototype.checkErrorCode=function(a){var b={message:"",error:0,errorCode:0};switch(a){case 0:b.message="query success";break;case 20:b.message="要翻译的文本过长",b.error=1,b.errorCode=20;break;case 30:b.message="无法进行有效的翻译",b.error=1,b.errorCode=30;break;case 40:b.message="不支持的语言类型",b.error=1,b.errorCode=40;break;case 50:b.message="无效的key",b.error=1,b.errorCode=50;break;case 60:b.message="无辞典结果",b.error=1,b.errorCode=60}return b},ChaZD.prototype.parseResult=function(a){var b={},c=this.checkErrorCode(a.errorCode);if(b.haveWebTranslation=!1,c.error)b.errorCode=c.errorCode;else{var d=this.initTitle(a);if(b.titleBlock=d.titleBlock,b.haveTranslation=this.haveTranslation(a),void 0!==a.basic){var e=this.parseBasicResult(a);b.basicBlock=e}if(void 0!==a.web){var f=this.parseWebResult(a);b.haveWebTranslation=!0,b.webBlock=f}}return b.validMessage=c.message,b},ChaZD.prototype.haveTranslation=function(a){if(this.checkErrorCode(a.errorCode).error)return!1;var b=a.translation,c=a.query;return trim(c.toLowerCase())===trim(b.toString().toLowerCase())?!1:!0},ChaZD.prototype.initTitle=function(a){var b=a.translation,c=a.query,d=this.initVoice(c);c=c.length>=50&&"select"==this.wordSource?this.shortWord(c):c;var e=fmt(frame.titleWord,c,d),f=fmt(frame.titleTranslation,b.toString());return{titleBlock:fmt(frame.titleContainer,e,f,c.length>=50?"long-text":"")}},ChaZD.prototype.shortWord=function(a){return a.slice(0,a.lastIndexOf(" ",50)).concat(" ...")},ChaZD.prototype.parseBasicResult=function(a){var b=a.basic,c=a.query,d=this.parseBasicPhonetic(b,c),e=this.parseBasicExplains(b,c),f=fmt(frame.basicContainer,d,e);return f},ChaZD.prototype.parseBasicPhonetic=function(a,b){var c=a["uk-phonetic"],d=a["us-phonetic"];if(void 0!==c&&void 0!==d){var e=this.initVoice(b,1),f=fmt(frame.ukPhoneticContainer,"["+c+"]"+e),g=this.initVoice(b,2),h=fmt(frame.usPhoneticContainer,"["+d+"]"+g);return fmt(frame.phoneticContainer,f,h)}return fmt(frame.phoneticContainer,"","")},ChaZD.prototype.initVoice=function(a,b){var c=(this.useHttps?urls.voiceHttps:urls.voice)+a;void 0!==b&&(c=c+"&type="+b);var d="";return d=1===b?"英音":2===b?"美音":"真人发音",fmt(frame.voiceContainer,c,d)},ChaZD.prototype.parseBasicExplains=function(a){var b,c=a.explains,d="";for(b=0;b=50&&"select"==this.wordSource?this.shortWord(c):c;var e=fmt(frame.titleWord,c,d),f=fmt(frame.titleTranslation,b.toString());return{titleBlock:fmt(frame.titleContainer,e,f,c.length>=50?"long-text":"")}},ChaZD.prototype.shortWord=function(a){return a.slice(0,a.lastIndexOf(" ",50)).concat(" ...")},ChaZD.prototype.parseBasicResult=function(a){var b=a.basic,c=a.query,d=this.parseBasicPhonetic(b,c),e=this.parseBasicExplains(b,c);return fmt(frame.basicContainer,d,e)},ChaZD.prototype.parseBasicPhonetic=function(a,b){var c=a["uk-phonetic"],d=a["us-phonetic"];if(void 0!==c&&void 0!==d){var e=this.initVoice(b,1),f=fmt(frame.ukPhoneticContainer,"["+c+"]"+e),g=this.initVoice(b,2),h=fmt(frame.usPhoneticContainer,"["+d+"]"+g);return fmt(frame.phoneticContainer,f,h)}return fmt(frame.phoneticContainer,"","")},ChaZD.prototype.initVoice=function(a,b){var c=(this.useHttps?urls.voiceHttps:urls.voice)+a;void 0!==b&&(c=c+"&type="+b);var d="";return d=1===b?"英音":2===b?"美音":"真人发音",fmt(frame.voiceContainer,c,d)},ChaZD.prototype.parseBasicExplains=function(a,b){var c,d=a.explains,e="";for(c=0;c>16)+(b>>16)+(c>>16)<<16|65535&c}function c(a,b){return a<>>32-b}function d(a,d,e,f,g,h){return b(c(b(b(d,a),b(f,h)),g),e)}function e(a,b,c,e,f,g,h){return d(b&c|~b&e,a,b,f,g,h)}function f(a,b,c,e,f,g,h){return d(b&e|c&~e,a,b,f,g,h)}function g(a,b,c,e,f,g,h){return d(b^c^e,a,b,f,g,h)}function h(a,b,c,e,f,g,h){return d(c^(b|~e),a,b,f,g,h)}function i(a,c){a[c>>5]|=128<>>9<<4)]=c;var d,i,j,k,l,m=1732584193,n=-271733879,o=-1732584194,p=271733878;for(d=0;d>5]>>>b%32&255);return c}function k(a){var b,c=[];for(c[(a.length>>2)-1]=void 0,b=0;b>5]|=(255&a.charCodeAt(b/8))<16&&(e=i(e,8*a.length)),c=0;c<16;c+=1)f[c]=909522486^e[c],g[c]=1549556828^e[c];return d=i(f.concat(k(b)),512+8*b.length),j(i(g.concat(d),640))}function n(a){var b,c,d="0123456789abcdef",e="";for(c=0;c>>4&15)+d.charAt(15&b);return e}function o(a){return unescape(encodeURIComponent(a))}function p(a){return l(o(a))}function q(a){return n(p(a))}function r(a,b){return m(o(a),o(b))}function s(a,b){return n(r(a,b))}function t(a,b,c){return b?c?r(b,a):s(b,a):c?p(a):q(a)}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:a.md5=t}(this);
\ No newline at end of file
diff --git a/public/js/popup.min.js b/public/js/popup.min.js
index e514d17..35e6bff 100644
--- a/public/js/popup.min.js
+++ b/public/js/popup.min.js
@@ -1 +1 @@
-function queryInPopup(a){$queryResultContainer.classList.contains("unshow")&&$queryResultContainer.classList.remove("unshow"),""!==$input.value&&($queryResultContainer.innerHTML="ψ(._. )>词典君正在翻译。。。"),a?($input.value=a,chrome.extension.sendMessage({queryWord:a,source:"popup",useHttps:useHttpsValue},buildResult)):chrome.extension.sendMessage({queryWord:$input.value,source:"popup",useHttps:useHttpsValue},buildResult)}function buildVoice(a){var b=a.getAttribute("data-src"),c=document.createElement("audio");c.setAttribute("src",b),a.appendChild(c),c.addEventListener("ended",function(){this.load()}),a.addEventListener("click",function(){c.play()})}function createLink(a,b){a.addEventListener("click",function(){chrome.tabs.create({url:b})})}function totalHeight(a){for(var b=document.getElementsByClassName(a),c=b.length,d=0,e=0;c>e;e++)d+=b[e].scrollHeight;return d+10}var $button=document.querySelector("#search"),$input=document.querySelector("#query-word"),$queryResultContainer=document.querySelector("#query-result");-1!==window.navigator.platform.toLowerCase().indexOf("mac")&&(document.querySelector("#ctrl-option").firstChild.nodeValue="Command");var buildResult=function(a){var b=a,c="";if("query success"==b.validMessage){c+=b.titleBlock,void 0!==b.basicBlock&&(c+=b.basicBlock),void 0!==b.webBlock&&(c+=b.webBlock),$queryResultContainer.innerHTML=c;var d,e,f=document.querySelectorAll(".voice-container");for(d=0,e=f.length;e>d;d++)buildVoice(f[d])}else $queryResultContainer.innerHTML=20==b.errorCode?"这段文字太长,词典君无能为力了(┬_┬)
试试短一点的吧~
":40==b.errorCode?"对不起,这段文字太高深了,请饶过词典君吧(┬_┬)
":"词典君罢工啦(┬_┬)
是不是网络不太好?
稍后再试一次吧
"};$button.addEventListener("click",function(){queryInPopup()}),$input.select(),$input.addEventListener("input",function(){var a=$input.value;setTimeout(function(){$input.value===a&&""!==$input.value&&queryInPopup()},500)});var issue=document.querySelector("#issue"),email=document.querySelector("#email"),source=document.querySelector("#source"),keySet=document.querySelector("#key-set"),score=document.querySelector("#score");createLink(email,"mailto:ververcpp@gmail.com"),createLink(source,"https://github.com/ververcpp/ChaZD"),createLink(issue,"https://github.com/ververcpp/ChaZD/issues/new"),createLink(keySet,"chrome://extensions/configureCommands"),createLink(score,"https://chrome.google.com/webstore/detail/chazd/nkiipedegbhbjmajlhpegcpcaacbfggp"),document.querySelector("#setting-button").addEventListener("click",function(){var a=document.getElementById("settings");a.classList.toggle("active"),a.style.height=a.classList.contains("active")?blockHeight+"px":0});var blockHeight=totalHeight("top-menu")+totalHeight("sub-menu")+totalHeight("carved")+32,linkQuery=document.querySelector("#linkQuery"),noSelect=document.querySelector("#noSelect"),mouseSelect=document.querySelector("#mouseSelect"),useCtrl=document.querySelector("#useCtrl"),autoAudio=document.querySelector("#autoAudio"),defaultUk=document.querySelector("#defaultUk"),defaultUs=document.querySelector("#defaultUs"),showPositionSide=document.querySelector("#showPositionSide"),showPositionNear=document.querySelector("#showPositionNear"),autoHide=document.querySelector("#autoHide"),showDuration=document.querySelector("#showDuration"),currentDuration=document.querySelector("#currentDuration"),turnOffTips=document.querySelector("#turn-off-tips"),tips=document.querySelector("#tips"),toggleKey=document.querySelector("#toggle-key"),useHttps=document.querySelector("#useHttps"),useHttpsValue=!1;chrome.storage.sync.get(null,function(a){""!==a.currentWord&&queryInPopup(a.currentWord),a.linkQuery===!0?(linkQuery.checked=!0,linkQuery.nextSibling.classList.remove("unactive")):(linkQuery.checked=!1,linkQuery.nextSibling.classList.add("unactive")),a.useHttps===!0?(useHttps.checked=!0,useHttpsValue=!0,useHttps.nextSibling.classList.remove("unactive")):(useHttps.checked=!1,useHttpsValue=!1,useHttps.nextSibling.classList.add("unactive")),a.autoAudio===!0?(autoAudio.checked=!0,autoAudio.nextSibling.classList.remove("unactive")):(autoAudio.checked=!1,autoAudio.nextSibling.classList.add("unactive")),1===a.defaultVoice?(defaultUk.checked=!0,defaultUk.nextSibling.classList.remove("unactive"),defaultUs.nextSibling.classList.add("unactive")):2===a.defaultVoice&&(defaultUs.checked=!0,defaultUs.nextSibling.classList.remove("unactive"),defaultUk.nextSibling.classList.add("unactive")),"noSelect"===a.selectMode&&(noSelect.checked=!0,noSelect.nextSibling.classList.remove("unactive"),mouseSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.add("unactive"),toggleKey.disabled=!0,autoAudio.disabled=!0),"mouseSelect"===a.selectMode&&(mouseSelect.checked=!0,mouseSelect.nextSibling.classList.remove("unactive"),noSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.add("unactive"),toggleKey.disabled=!0,autoAudio.disabled=!1),"useCtrl"===a.selectMode&&(useCtrl.checked=!0,useCtrl.nextSibling.classList.remove("unactive"),noSelect.nextSibling.classList.add("unactive"),mouseSelect.nextSibling.classList.add("unactive"),toggleKey.disabled=!1,autoAudio.disabled=!1),a.showTips&&tips.classList.remove("unshow"),"side"===a.showPosition?(showPositionSide.checked=!0,showPositionSide.nextSibling.classList.remove("unactive"),showPositionNear.nextSibling.classList.add("unactive")):"near"===a.showPosition&&(showPositionNear.checked=!0,showPositionSide.nextSibling.classList.add("unactive"),showPositionNear.nextSibling.classList.remove("unactive")),"ctrl"===a.toggleKey?toggleKey.selectedIndex=0:"alt"===a.toggleKey?toggleKey.selectedIndex=1:"shift"===a.toggleKey&&(toggleKey.selectedIndex=2),a.autoHide===!0?(autoHide.checked=!0,autoHide.nextSibling.classList.remove("unactive"),showDuration.disabled=!1):(autoHide.checked=!1,autoHide.nextSibling.classList.add("unactive"),showDuration.disabled=!0),currentDuration.innerHTML=showDuration.value=a.showDuration}),linkQuery.addEventListener("click",function(){var a=linkQuery.checked;linkQuery.nextSibling.classList.toggle("unactive"),chrome.storage.sync.set({linkQuery:a},function(){})}),useHttps.addEventListener("click",function(){var a=useHttps.checked;useHttps.nextSibling.classList.toggle("unactive"),chrome.storage.sync.set({useHttps:a})}),autoAudio.addEventListener("click",function(){var a=autoAudio.checked;a?autoAudio.nextSibling.classList.remove("unactive"):autoAudio.nextSibling.classList.add("unactive"),chrome.storage.sync.set({autoAudio:a},function(){})}),defaultUk.addEventListener("click",function(){defaultUk.nextSibling.classList.remove("unactive"),defaultUs.nextSibling.classList.add("unactive"),chrome.storage.sync.set({defaultVoice:1},function(){})}),defaultUs.addEventListener("click",function(){defaultUs.nextSibling.classList.remove("unactive"),defaultUk.nextSibling.classList.add("unactive"),chrome.storage.sync.set({defaultVoice:2},function(){})}),turnOffTips.addEventListener("click",function(){tips.classList.add("unshow"),chrome.storage.sync.set({showTips:!1},function(){})}),noSelect.addEventListener("click",function(){toggleKey.disabled=!0,autoAudio.disabled=!0,noSelect.nextSibling.classList.remove("unactive"),mouseSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.add("unactive"),chrome.storage.sync.set({selectMode:"noSelect"},function(){})}),mouseSelect.addEventListener("click",function(){toggleKey.disabled=!0,autoAudio.disabled=!1,noSelect.nextSibling.classList.add("unactive"),mouseSelect.nextSibling.classList.remove("unactive"),useCtrl.nextSibling.classList.add("unactive"),chrome.storage.sync.set({selectMode:"mouseSelect"},function(){})}),useCtrl.addEventListener("click",function(){toggleKey.disabled&&(toggleKey.disabled=!1),autoAudio.disabled=!1,noSelect.nextSibling.classList.add("unactive"),mouseSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.remove("unactive"),chrome.storage.sync.set({selectMode:"useCtrl"},function(){})}),showPositionSide.addEventListener("click",function(){showPositionSide.nextSibling.classList.remove("unactive"),showPositionNear.nextSibling.classList.add("unactive"),chrome.storage.sync.set({showPosition:"side"},function(){})}),showPositionNear.addEventListener("click",function(){showPositionSide.nextSibling.classList.add("unactive"),showPositionNear.nextSibling.classList.remove("unactive"),chrome.storage.sync.set({showPosition:"near"},function(){})}),autoHide.addEventListener("click",function(){var a=autoHide.checked;a?(autoHide.nextSibling.classList.remove("unactive"),showDuration.disabled=!1):(autoHide.nextSibling.classList.add("unactive"),showDuration.disabled=!0),chrome.storage.sync.set({autoHide:a},function(){})}),showDuration.addEventListener("input",function(){currentDuration.innerHTML=showDuration.value,chrome.storage.sync.set({showDuration:showDuration.value},function(){})}),toggleKey.onchange=function(){chrome.storage.sync.set({toggleKey:this.value},function(){})};
\ No newline at end of file
+function queryInPopup(a){$queryResultContainer.classList.contains("unshow")&&$queryResultContainer.classList.remove("unshow"),""!==$input.value&&($queryResultContainer.innerHTML="ψ(._. )>词典君正在翻译。。。"),a?($input.value=a,chrome.extension.sendMessage({queryWord:a,source:"popup",useHttps:useHttpsValue},buildResult)):chrome.extension.sendMessage({queryWord:$input.value,source:"popup",useHttps:useHttpsValue},buildResult)}function buildVoice(a){var b=a.getAttribute("data-src"),c=document.createElement("audio");c.setAttribute("src",b),a.appendChild(c),c.addEventListener("ended",function(a){this.load()}),a.addEventListener("click",function(a){c.play()})}function createLink(a,b){a.addEventListener("click",function(a){chrome.tabs.create({url:b})})}function totalHeight(a){for(var b=document.getElementsByClassName(a),c=b.length,d=0,e=0;e这段文字太长,词典君无能为力了(┬_┬)
试试短一点的吧~
":102==b.errorCode?$queryResultContainer.innerHTML="对不起,这段文字太高深了,请饶过词典君吧(┬_┬)
":$queryResultContainer.innerHTML="词典君罢工啦(┬_┬)
是不是网络不太好?
稍后再试一次吧
"};$button.addEventListener("click",function(a){queryInPopup()}),$input.select(),$input.addEventListener("input",function(a){var b=$input.value;setTimeout(function(){$input.value===b&&""!==$input.value&&queryInPopup()},500)});var issue=document.querySelector("#issue"),email=document.querySelector("#email"),source=document.querySelector("#source"),keySet=document.querySelector("#key-set"),score=document.querySelector("#score");createLink(email,"mailto:ververcpp@gmail.com"),createLink(source,"https://github.com/ververcpp/ChaZD"),createLink(issue,"https://github.com/ververcpp/ChaZD/issues/new"),createLink(keySet,"chrome://extensions/configureCommands"),createLink(score,"https://chrome.google.com/webstore/detail/chazd/nkiipedegbhbjmajlhpegcpcaacbfggp"),document.querySelector("#setting-button").addEventListener("click",function(a){var b=document.getElementById("settings");b.classList.toggle("active"),b.classList.contains("active")?b.style.height=blockHeight+"px":b.style.height=0});var blockHeight=totalHeight("top-menu")+totalHeight("sub-menu")+totalHeight("carved")+32,linkQuery=document.querySelector("#linkQuery"),noSelect=document.querySelector("#noSelect"),mouseSelect=document.querySelector("#mouseSelect"),useCtrl=document.querySelector("#useCtrl"),autoAudio=document.querySelector("#autoAudio"),defaultUk=document.querySelector("#defaultUk"),defaultUs=document.querySelector("#defaultUs"),showPositionSide=document.querySelector("#showPositionSide"),showPositionNear=document.querySelector("#showPositionNear"),autoHide=document.querySelector("#autoHide"),showDuration=document.querySelector("#showDuration"),currentDuration=document.querySelector("#currentDuration"),turnOffTips=document.querySelector("#turn-off-tips"),tips=document.querySelector("#tips"),toggleKey=document.querySelector("#toggle-key"),useHttps=document.querySelector("#useHttps"),useHttpsValue=!1;chrome.storage.sync.get(null,function(a){""!==a.currentWord&&queryInPopup(a.currentWord),!0===a.linkQuery?(linkQuery.checked=!0,linkQuery.nextSibling.classList.remove("unactive")):(linkQuery.checked=!1,linkQuery.nextSibling.classList.add("unactive")),!0===a.useHttps?(useHttps.checked=!0,useHttpsValue=!0,useHttps.nextSibling.classList.remove("unactive")):(useHttps.checked=!1,useHttpsValue=!1,useHttps.nextSibling.classList.add("unactive")),!0===a.autoAudio?(autoAudio.checked=!0,autoAudio.nextSibling.classList.remove("unactive")):(autoAudio.checked=!1,autoAudio.nextSibling.classList.add("unactive")),1===a.defaultVoice?(defaultUk.checked=!0,defaultUk.nextSibling.classList.remove("unactive"),defaultUs.nextSibling.classList.add("unactive")):2===a.defaultVoice&&(defaultUs.checked=!0,defaultUs.nextSibling.classList.remove("unactive"),defaultUk.nextSibling.classList.add("unactive")),"noSelect"===a.selectMode&&(noSelect.checked=!0,noSelect.nextSibling.classList.remove("unactive"),mouseSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.add("unactive"),toggleKey.disabled=!0,autoAudio.disabled=!0),"mouseSelect"===a.selectMode&&(mouseSelect.checked=!0,mouseSelect.nextSibling.classList.remove("unactive"),noSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.add("unactive"),toggleKey.disabled=!0,autoAudio.disabled=!1),"useCtrl"===a.selectMode&&(useCtrl.checked=!0,useCtrl.nextSibling.classList.remove("unactive"),noSelect.nextSibling.classList.add("unactive"),mouseSelect.nextSibling.classList.add("unactive"),toggleKey.disabled=!1,autoAudio.disabled=!1),a.showTips&&tips.classList.remove("unshow"),"side"===a.showPosition?(showPositionSide.checked=!0,showPositionSide.nextSibling.classList.remove("unactive"),showPositionNear.nextSibling.classList.add("unactive")):"near"===a.showPosition&&(showPositionNear.checked=!0,showPositionSide.nextSibling.classList.add("unactive"),showPositionNear.nextSibling.classList.remove("unactive")),"ctrl"===a.toggleKey?toggleKey.selectedIndex=0:"alt"===a.toggleKey?toggleKey.selectedIndex=1:"shift"===a.toggleKey&&(toggleKey.selectedIndex=2),!0===a.autoHide?(autoHide.checked=!0,autoHide.nextSibling.classList.remove("unactive"),showDuration.disabled=!1):(autoHide.checked=!1,autoHide.nextSibling.classList.add("unactive"),showDuration.disabled=!0),currentDuration.innerHTML=showDuration.value=a.showDuration}),linkQuery.addEventListener("click",function(a){var b=linkQuery.checked;linkQuery.nextSibling.classList.toggle("unactive"),chrome.storage.sync.set({linkQuery:b},function(){})}),useHttps.addEventListener("click",function(a){var b=useHttps.checked;useHttps.nextSibling.classList.toggle("unactive"),chrome.storage.sync.set({useHttps:b})}),autoAudio.addEventListener("click",function(a){var b=autoAudio.checked;b?autoAudio.nextSibling.classList.remove("unactive"):autoAudio.nextSibling.classList.add("unactive"),chrome.storage.sync.set({autoAudio:b},function(){})}),defaultUk.addEventListener("click",function(a){defaultUk.nextSibling.classList.remove("unactive"),defaultUs.nextSibling.classList.add("unactive"),chrome.storage.sync.set({defaultVoice:1},function(){})}),defaultUs.addEventListener("click",function(a){defaultUs.nextSibling.classList.remove("unactive"),defaultUk.nextSibling.classList.add("unactive"),chrome.storage.sync.set({defaultVoice:2},function(){})}),turnOffTips.addEventListener("click",function(a){tips.classList.add("unshow"),chrome.storage.sync.set({showTips:!1},function(){})}),noSelect.addEventListener("click",function(a){toggleKey.disabled=!0,autoAudio.disabled=!0,noSelect.nextSibling.classList.remove("unactive"),mouseSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.add("unactive"),chrome.storage.sync.set({selectMode:"noSelect"},function(){})}),mouseSelect.addEventListener("click",function(a){toggleKey.disabled=!0,autoAudio.disabled=!1,noSelect.nextSibling.classList.add("unactive"),mouseSelect.nextSibling.classList.remove("unactive"),useCtrl.nextSibling.classList.add("unactive"),chrome.storage.sync.set({selectMode:"mouseSelect"},function(){})}),useCtrl.addEventListener("click",function(a){toggleKey.disabled&&(toggleKey.disabled=!1),autoAudio.disabled=!1,noSelect.nextSibling.classList.add("unactive"),mouseSelect.nextSibling.classList.add("unactive"),useCtrl.nextSibling.classList.remove("unactive"),chrome.storage.sync.set({selectMode:"useCtrl"},function(){})}),showPositionSide.addEventListener("click",function(a){showPositionSide.nextSibling.classList.remove("unactive"),showPositionNear.nextSibling.classList.add("unactive"),chrome.storage.sync.set({showPosition:"side"},function(){})}),showPositionNear.addEventListener("click",function(a){showPositionSide.nextSibling.classList.add("unactive"),showPositionNear.nextSibling.classList.remove("unactive"),chrome.storage.sync.set({showPosition:"near"},function(){})}),autoHide.addEventListener("click",function(a){var b=autoHide.checked;b?(autoHide.nextSibling.classList.remove("unactive"),showDuration.disabled=!1):(autoHide.nextSibling.classList.add("unactive"),showDuration.disabled=!0),chrome.storage.sync.set({autoHide:b},function(){})}),showDuration.addEventListener("input",function(a){currentDuration.innerHTML=showDuration.value,chrome.storage.sync.set({showDuration:showDuration.value},function(){})}),toggleKey.onchange=function(a){chrome.storage.sync.set({toggleKey:this.value},function(){})},document.addEventListener("keyup",function(a){"BODY"==document.activeElement.tagName&&13==a.which&&queryInPopup(window.getSelection().toString())});
\ No newline at end of file
diff --git a/public/js/selection.min.js b/public/js/selection.min.js
index 56ab3a8..53f63be 100644
--- a/public/js/selection.min.js
+++ b/public/js/selection.min.js
@@ -1 +1 @@
-!function(){function a(a){var b=a.getAttribute("data-src"),c=document.createElement("audio");c.setAttribute("src",b+"&type="+e.defaultVoice),a.appendChild(c),e.autoAudio===!0&&c.play(),c.addEventListener("ended",function(){this.load()}),a.addEventListener("click",function(){c.play()})}function b(a,b){return a.top===b.top&&a.bottom===b.bottom&&a.left===b.left&&a.right===b.right?!0:!1}var c,d={top:0,bottom:0,left:0,right:0,again:0},e={};chrome.storage.sync.get(null,function(a){for(var b in a)e[b]=a[b]}),chrome.storage.onChanged.addListener(function(a){void 0!==a.linkQuery&&(e.linkQuery=a.linkQuery.newValue),void 0!==a.useHttps&&(e.useHttps=a.useHttps.newValue),void 0!==a.autoAudio&&(e.autoAudio=a.autoAudio.newValue),void 0!==a.defaultVoice&&(e.defaultVoice=a.defaultVoice.newValue),void 0!==a.selectMode&&(e.selectMode=a.selectMode.newValue),void 0!==a.toggleKey&&(e.toggleKey=a.toggleKey.newValue),void 0!==a.autoHide&&(e.autoHide=a.autoHide.newValue),void 0!==a.showDuration&&(e.showDuration=a.showDuration.newValue),void 0!==a.showPosition&&(e.showPosition=a.showPosition.newValue)});var f=function(a){var c=window.getSelection&&window.getSelection();if(c&&c.rangeCount>0){var f=trim(c.toString()),i=c.getRangeAt(0).getBoundingClientRect();if(b(i,d)&&d.again)return void(d.again=0);if(""===f||!/^[^\u4e00-\u9fa5]+$/.test(f))return;for(var j=document.documentElement.querySelectorAll(".ChaZD-result-container"),k=0,l=j.length;l>k;k++)if(j[k].getAttribute("data-text").toLowerCase()===f.toLowerCase())return;chrome.storage.sync.set({currentWord:f},function(){});for(var m in d)d[m]="again"==m?1:i[m];"side"===e.showPosition&&g(f,e.useHttps),"near"===e.showPosition&&h(f,e.useHttps,i,a)}},g=function(a,b){var d=j(a,b);d.classList.add("ChaZD-result-side"),document.documentElement.appendChild(d),e.autoHide&&(c=setTimeout(function(){document.querySelector(".ChaZD-result-container")&&document.documentElement.removeChild(d)},1e3*e.showDuration))},h=function(a,b,d,f){var g=j(a,b),h=i();document.documentElement.appendChild(g),document.documentElement.appendChild(h);var k={};0===d.left&&0===d.top&&(d={left:f.clientX,top:f.clientY,height:15});var l=g.offsetWidth,m=d.right-d.left,n=d.left+window.pageXOffset,o=d.top+window.pageYOffset,p=m/2+n,q=n-(l-m)/2,r=p-12;qwindow.pageXOffset+document.documentElement.clientWidth&&(q=window.pageXOffset+document.documentElement.clientWidth-l);var s=0;if(s=document.documentElement.clientHeight>document.body.clientHeight?document.body.clientHeight:document.documentElement.clientHeight,0===s&&(s=document.documentElement.clientHeight),d.top>=150){var t=s-o+10,u=t+1;k={left:q,bottom:t,arrowLeft:r,arrowBottom:u}}else k={left:q,top:o+d.height+12,arrowLeft:r,arrowTop:o+d.height+1};g.style.left=k.left+"px",h.style.left=k.arrowLeft+"px";var v,w,x=document.querySelectorAll(".ChaZD-arrow-outer"),y=document.querySelectorAll(".ChaZD-arrow-inner");if(k.bottom)for(g.style.bottom=k.bottom+"px",h.style.bottom=k.arrowBottom+"px",v=0,w=x.length;w>v;v++)x[v].classList.add("ChaZD-arrow-outer-down"),y[v].classList.add("ChaZD-arrow-inner-down");if(k.top)for(g.style.top=k.top+"px",h.style.top=k.arrowTop+"px",v=0,w=x.length;w>v;v++)x[v].classList.add("ChaZD-arrow-outer-up"),y[v].classList.add("ChaZD-arrow-inner-up");e.autoHide&&(c=setTimeout(function(){document.querySelector(".ChaZD-result-container")&&document.querySelector(".ChaZD-arrow-main")&&(document.documentElement.removeChild(g),document.documentElement.removeChild(h))},1e3*e.showDuration))},i=function(){var a=document.createElement("div");a.classList.add("ChaZD-arrow-main");var b=document.createElement("div");b.setAttribute("class","ChaZD-arrow-outer");var c=document.createElement("div");return c.setAttribute("class","ChaZD-arrow-inner"),a.appendChild(b),a.appendChild(c),a},j=function(b,c){var d=document.createElement("div");d.classList.add("ChaZD-result-container"),d.setAttribute("data-text",b);var e=document.createElement("div");return e.setAttribute("id","ChaZD-searching"),e.innerHTML="ψ(._. )>划词君正在翻译。。。",d.appendChild(e),chrome.runtime.sendMessage({queryWord:b,source:"select",useHttps:c},function(b){var c=b;if(e.innerHTML="","query success"===c.validMessage){d.innerHTML=c.titleBlock;var f=d.querySelector(".voice-container");a(f);var g=document.createElement("div");c.basicBlock?(g.innerHTML=c.basicBlock,d.appendChild(g)):c.haveTranslation?d.querySelector(".title-translation").style.display="block":c.haveWebTranslation?(g.innerHTML=c.webBlock,d.appendChild(g),d.querySelector(".web-title").innerHTML="网络释义"):d.innerHTML="╮(╯▽╰)╭划词君无能为力啊
还是右键问问谷歌君吧=>"}else d.innerHTML=20==c.errorCode?"这段文字太长,词典君无能为力了(┬_┬)
试试短一点的吧~
":40==c.errorCode?"对不起,这段文字太高深了,请饶过词典君吧(┬_┬)
":"词典君罢工啦(┬_┬)
是不是网络不太好?
稍后再试一次吧
"}),d},k=["ChaZD-result-container","title-container","title-word","title-translation","basic-container","phonetic-container","explains-container","explains-container","explains-list","property-container","explains-item","voice-container","us-phonetic-container","uk-phonetic-container","web-explains-container","web-explains-list","web-key","explains-item-value","web-value"];document.documentElement.addEventListener("mousedown",function(a){for(var b in k)if(a.target.classList.contains(k[b]))return;clearTimeout(c);var d,e,f=document.querySelectorAll(".ChaZD-result-container"),g=document.querySelectorAll(".ChaZD-arrow-main");if(f)for(d=0,e=f.length;e>d;d++)document.documentElement.removeChild(f[d]);if(g)for(d=0,e=g.length;e>d;d++)document.documentElement.removeChild(g[d]);chrome.storage.sync.set({currentWord:""})}),window.addEventListener("resize",function(){var a=document.querySelector(".ChaZD-result-container"),b=document.querySelector(".ChaZD-arrow-main");a&&document.documentElement.removeChild(a),b&&document.documentElement.removeChild(b)});var l=function(a){if("noSelect"!==e.selectMode){if("useCtrl"===e.selectMode)if("ctrl"===e.toggleKey){if(!a.ctrlKey&&!a.metaKey)return void(d.again=0)}else if("alt"===e.toggleKey){if(!a.altKey)return void(d.again=0)}else if("shift"===e.toggleKey&&!a.shiftKey)return void(d.again=0);f(a)}},m=null,n=function(a){e.linkQuery&&(m=a.target,a.shiftKey&&p(a))},o=function(a){e.linkQuery&&(m&&m.classList.contains("ChaZD-link")&&q(a,!0),m=null)},p=function(a){m&&a.shiftKey&&(r(a),m.setAttribute("ChaZD-href",m.getAttribute("href")),m.removeAttribute("href"),m.classList.add("ChaZD-link"))},q=function(a,b){m&&(b||16==a.keyCode)&&(m.setAttribute("href",m.getAttribute("ChaZD-href")),m.removeAttribute("ChaZD-href"),m.classList.remove("ChaZD-link"))},r=function(a){e.linkQuery&&a.shiftKey&&window.getSelection().empty()};document.documentElement.addEventListener("mouseup",l),document.documentElement.addEventListener("mouseover",function(a){("A"===a.target.nodeName||"a"===a.target.nodeName)&&n(a)}),document.documentElement.addEventListener("mouseout",function(a){("A"===a.target.nodeName||"a"===a.target.nodeName)&&o(a)}),document.documentElement.addEventListener("keydown",p),document.documentElement.addEventListener("keyup",q),document.documentElement.addEventListener("selectstart",l)}();
\ No newline at end of file
+!function(){function a(a){var b=a.getAttribute("data-src"),c=document.createElement("audio");c.setAttribute("src",b+"&type="+e.defaultVoice),a.appendChild(c),!0===e.autoAudio&&c.play(),c.addEventListener("ended",function(a){this.load()}),a.addEventListener("click",function(a){c.play()})}function b(a,b){return a.top===b.top&&a.bottom===b.bottom&&a.left===b.left&&a.right===b.right}var c,d={top:0,bottom:0,left:0,right:0,again:0},e={};chrome.storage.sync.get(null,function(a){for(var b in a)e[b]=a[b]}),chrome.storage.onChanged.addListener(function(a){void 0!==a.linkQuery&&(e.linkQuery=a.linkQuery.newValue),void 0!==a.useHttps&&(e.useHttps=a.useHttps.newValue),void 0!==a.autoAudio&&(e.autoAudio=a.autoAudio.newValue),void 0!==a.defaultVoice&&(e.defaultVoice=a.defaultVoice.newValue),void 0!==a.selectMode&&(e.selectMode=a.selectMode.newValue),void 0!==a.toggleKey&&(e.toggleKey=a.toggleKey.newValue),void 0!==a.autoHide&&(e.autoHide=a.autoHide.newValue),void 0!==a.showDuration&&(e.showDuration=a.showDuration.newValue),void 0!==a.showPosition&&(e.showPosition=a.showPosition.newValue)});var f=function(a){var c=window.getSelection&&window.getSelection();if(c&&c.rangeCount>0){var f=trim(c.toString()),i=c.getRangeAt(0).getBoundingClientRect();if(b(i,d)&&d.again)return void(d.again=0);if(""===f||!/^[^\u4e00-\u9fa5]+$/.test(f))return;for(var j=document.documentElement.querySelectorAll(".ChaZD-result-container"),k=0,l=j.length;kwindow.pageXOffset+document.documentElement.clientWidth&&(q=window.pageXOffset+document.documentElement.clientWidth-l);var s=0;if(s=document.documentElement.clientHeight>document.body.clientHeight?document.body.clientHeight:document.documentElement.clientHeight,0===s&&(s=document.documentElement.clientHeight),d.top>=150){var t=s-o+10;k={left:q,bottom:t,arrowLeft:r,arrowBottom:t+1}}else k={left:q,top:o+d.height+12,arrowLeft:r,arrowTop:o+d.height+1};g.style.left=k.left+"px",h.style.left=k.arrowLeft+"px";var u,v,w=document.querySelectorAll(".ChaZD-arrow-outer"),x=document.querySelectorAll(".ChaZD-arrow-inner");if(k.bottom)for(g.style.bottom=k.bottom+"px",h.style.bottom=k.arrowBottom+"px",u=0,v=w.length;u划词君正在翻译。。。",d.appendChild(e),chrome.runtime.sendMessage({queryWord:b,source:"select",useHttps:c},function(b){var c=b;if(e.innerHTML="","query success"==c.validMessage){d.innerHTML=c.titleBlock;a(d.querySelector(".voice-container"));var f=document.createElement("div");c.basicBlock?(f.innerHTML=c.basicBlock,d.appendChild(f)):c.haveTranslation?d.querySelector(".title-translation").style.display="block":c.haveWebTranslation?(f.innerHTML=c.webBlock,d.appendChild(f),d.querySelector(".web-title").innerHTML="网络释义"):d.innerHTML="╮(╯▽╰)╭划词君无能为力啊
还是右键问问谷歌君吧=>"}else 103==c.errorCode?d.innerHTML="这段文字太长,词典君无能为力了(┬_┬)
试试短一点的吧~
":102==c.errorCode?d.innerHTML="对不起,这段文字太高深了,请饶过词典君吧(┬_┬)
":d.innerHTML="词典君罢工啦(┬_┬)
是不是网络不太好?
稍后再试一次吧
"}),d},k=["ChaZD-result-container","title-container","title-word","title-translation","basic-container","phonetic-container","explains-container","explains-container","explains-list","property-container","explains-item","voice-container","us-phonetic-container","uk-phonetic-container","web-explains-container","web-explains-list","web-key","explains-item-value","web-value"];document.documentElement.addEventListener("mousedown",function(a){for(var b in k)if(a.target.classList.contains(k[b]))return;clearTimeout(c);var d,e,f=document.querySelectorAll(".ChaZD-result-container"),g=document.querySelectorAll(".ChaZD-arrow-main");if(f)for(d=0,e=f.length;d1?arguments.callee(a[c],b.slice(1)):a[c]}("object"==typeof a[1]?a[1]:a,c.split(/\.|\[|\]\[|\]\./))})}function trim(a){return a.replace(/(^\s*)|(\s*$)/g,"")}var api={key:1116151381,keyfrom:"youdaocidian"},urls={dict:"http://fanyi.youdao.com/openapi.do?keyfrom="+api.keyfrom+"&key="+api.key+"&type=data&doctype=json&version=1.1&q=",voice:"http://dict.youdao.com/dictvoice?audio=",dictHttps:"https://fanyi.youdao.com/openapi.do?keyfrom="+api.keyfrom+"&key="+api.key+"&type=data&doctype=json&version=1.1&q=",voiceHttps:"https://dict.youdao.com/dictvoice?audio="},settings={selectMode:"mouseSelect",showPosition:"near",toggleKey:"ctrl",showTips:!0,currentWord:"",linkQuery:!1,autoAudio:!1,autoHide:!1,showDuration:3,defaultVoice:1,useHttps:!1},frame={titleContainer:'#{1}#{2}
',titleWord:'#{1}#{2}
',voiceContainer:'',titleTranslation:'#{1}
',basicContainer:'#{1}#{2}
',phoneticContainer:'#{1}#{2}
',ukPhoneticContainer:'#{1}
',usPhoneticContainer:'#{1}
',explainsContainer:'#{1}
',explainsList:'',explain:'#{1}#{2}',propertyContainer:'#{2}',webExplainsContainer:'',webExplainsList:'',webExplain:'#{1}#{2}'};
\ No newline at end of file
+function isEmpty(a){for(var b in a)return!1;return!0}function fmt(){var a=arguments;return a[0].replace(/#{(.*?)}/g,function(b,c){return function(a,b){var c=/\d+/.test(b[0])?parseInt(b[0]):b[0];return b.length>1?arguments.callee(a[c],b.slice(1)):a[c]}("object"==typeof a[1]?a[1]:a,c.split(/\.|\[|\]\[|\]\./))})}function trim(a){return a.replace(/(^\s*)|(\s*$)/g,"")}var api={key:"6017e78c4827feaa",keyfrom:"02C7n5T0vYATzP23CcNk4oMO1qotbS0s"},urls={dict:"http://openapi.youdao.com/api?from=auto&to=zh-CHS&appKey="+api.key+"&q=",voice:"http://dict.youdao.com/dictvoice?audio=",dictHttps:"https://openapi.youdao.com/api?from=auto&to=zh-CHS&appKey="+api.key+"&q=",voiceHttps:"https://dict.youdao.com/dictvoice?audio="},settings={selectMode:"mouseSelect",showPosition:"near",toggleKey:"ctrl",showTips:!0,currentWord:"",linkQuery:!1,autoAudio:!1,autoHide:!1,showDuration:3,defaultVoice:1,useHttps:!1},frame={titleContainer:'#{1}#{2}
',titleWord:'#{1}#{2}
',voiceContainer:'',titleTranslation:'#{1}
',basicContainer:'#{1}#{2}
',phoneticContainer:'#{1}#{2}
',ukPhoneticContainer:'#{1}
',usPhoneticContainer:'#{1}
',explainsContainer:'#{1}
',explainsList:'',explain:'#{1}#{2}',propertyContainer:'#{2}',webExplainsContainer:'',webExplainsList:'',webExplain:'#{1}#{2}'};
\ No newline at end of file
diff --git a/src/inPage.css.map b/src/inPage.css.map
index a1ebebb..63612d0 100644
--- a/src/inPage.css.map
+++ b/src/inPage.css.map
@@ -1,6 +1,6 @@
{
"version": 3,
-"mappings": "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",
+"mappings": "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",
"sources": ["sass/inPage.scss"],
"names": [],
"file": "inPage.css"
diff --git a/src/javascript/background.js b/src/javascript/background.js
index a791e4c..9835ba3 100644
--- a/src/javascript/background.js
+++ b/src/javascript/background.js
@@ -1,7 +1,9 @@
function ChaZD(queryWord, useHttps, wordSource, sendResponse) {
this.wordSource = wordSource;
this.useHttps = useHttps;
- var url = (useHttps ? urls.dictHttps : urls.dict) + queryWord;
+ var salt = Math.random().toString(36).substr(2);
+ var sign = md5(api.key + queryWord + salt + api.keyfrom);
+ var url = (useHttps ? urls.dictHttps : urls.dict) + queryWord + '&sign=' + sign + '&salt=' + salt;
//console.log("Query url: " + url);
var queryResult = {};
var self = this;
@@ -16,6 +18,7 @@ function ChaZD(queryWord, useHttps, wordSource, sendResponse) {
//优化使用连字符的词的查询结果
new ChaZD(queryWord.replace(/-/g, " "), useHttps, wordSource, sendResponse);
} else {
+ result.query = queryWord;
var resultObj = self.parseResult.call(self, result);
sendResponse(resultObj);
}
@@ -29,38 +32,39 @@ ChaZD.prototype.checkErrorCode = function (errorCode) {
"error": 0,
"errorCode": 0
};
- switch (errorCode) {
+ switch (parseInt(errorCode)) {
case 0:
response.message = "query success";
break;
- case 20:
+ case 103:
response.message = "要翻译的文本过长";
response.error = 1;
- response.errorCode = 20;
+ response.errorCode = 103;
break;
- case 30:
+ case 302:
response.message = "无法进行有效的翻译";
response.error = 1;
- response.errorCode = 30;
+ response.errorCode = 302;
break;
- case 40:
+ case 102:
response.message = "不支持的语言类型";
response.error = 1;
- response.errorCode = 40;
+ response.errorCode = 102;
break;
- case 50:
+ case 108:
response.message = "无效的key";
response.error = 1;
- response.errorCode = 50;
+ response.errorCode = 108;
break;
- case 60:
+ case 301:
response.message = "无辞典结果";
response.error = 1;
- response.errorCode = 60;
+ response.errorCode = 301;
break;
default:
}
- return response;
+ // console.log(response);
+ return response;
};
ChaZD.prototype.parseResult = function (result) {
@@ -86,7 +90,7 @@ ChaZD.prototype.parseResult = function (result) {
resultObj.errorCode = validResult.errorCode;
}
resultObj.validMessage = validResult.message;
-
+
return resultObj;
};
@@ -134,7 +138,7 @@ ChaZD.prototype.shortWord = function (longWord) {
ChaZD.prototype.parseBasicResult = function (result) {
var basic = result.basic;
var queryWord = result.query;
-
+
var phoneticBlock = this.parseBasicPhonetic(basic, queryWord);
var explainsBlock = this.parseBasicExplains(basic, queryWord);
@@ -149,13 +153,13 @@ ChaZD.prototype.parseBasicPhonetic = function (basic, queryWord) {
if (ukPhonetic !== undefined && usPhonetic !== undefined) {
var ukVoice = this.initVoice(queryWord, 1);
var ukPhoneticContainer = fmt(frame.ukPhoneticContainer, "[" + ukPhonetic + "]" + ukVoice);
-
+
var usVoice = this.initVoice(queryWord, 2);
var usPhoneticContainer = fmt(frame.usPhoneticContainer, "[" + usPhonetic + "]" + usVoice);
return fmt(frame.phoneticContainer, ukPhoneticContainer, usPhoneticContainer);
}
-
+
return fmt(frame.phoneticContainer, "", "");
};
@@ -164,7 +168,7 @@ ChaZD.prototype.initVoice = function (queryWord, type) {
if(type !== undefined) {
src = src + "&type=" + type;
}
- var title = "";
+ var title = "";
if(type === 1){
title = "英音";
} else if (type === 2){
@@ -182,17 +186,17 @@ ChaZD.prototype.parseBasicExplains = function (basic, queryWord) {
var explainsContent = "";
for (i = 0; i < explains.length; i++) {
var currentExplain = explains[i];
-
+
var haveProperty = currentExplain.indexOf(". ");
var property = (haveProperty !== -1) ? currentExplain.slice(0, haveProperty + 1) : "";
var propertyTitle = this.parseProperty(property);
var propertyContainer = fmt(frame.propertyContainer, propertyTitle, property);
var explainText = (haveProperty !== -1) ? currentExplain.slice(haveProperty + 1) : currentExplain;
-
+
var explain = fmt(frame.explain, propertyContainer, explainText);
explainsContent += explain;
- }
-
+ }
+
return fmt(frame.explainsContainer, fmt(frame.explainsList, explainsContent));
};
@@ -205,7 +209,7 @@ ChaZD.prototype.parseProperty = function (property) {
case "adv." :
propertyText = "副词";
break;
- case "n." :
+ case "n." :
propertyText = "名词";
break;
case "vi." :
@@ -297,7 +301,7 @@ chrome.runtime.onInstalled.addListener(
//console.log("[ChaZD] first install.");
showNotification({
title : "感谢支持 ChaZD !",
- content : "ChaZD 力求成为最简洁易用的 Chrome 词典扩展,欢迎提出您的意见或建议。" +
+ content : "ChaZD 力求成为最简洁易用的 Chrome 词典扩展,欢迎提出您的意见或建议。" +
"如果觉得 ChaZD 还不错,记得给5星好评哦:)"
});
//alert("Thank you for install my app:)");
@@ -309,7 +313,7 @@ chrome.runtime.onInstalled.addListener(
});
showNotification({
title : "ChaZD 更新到0.8.19版!",
- content : "修复若干 bug,如出现无法查词的问题,请在设置中关闭使用 HTTPS 接口"
+ content : "修复若干 bug,如出现无法查词的问题,请在设置中关闭使用 HTTPS 接口"
});
}
}
@@ -350,3 +354,263 @@ chrome.runtime.onMessage.addListener(
return true;
});
+;(function ($) {
+ 'use strict'
+
+ /*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+ function safeAdd (x, y) {
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF)
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
+ return (msw << 16) | (lsw & 0xFFFF)
+ }
+
+ /*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+ function bitRotateLeft (num, cnt) {
+ return (num << cnt) | (num >>> (32 - cnt))
+ }
+
+ /*
+ * These functions implement the four basic operations the algorithm uses.
+ */
+ function md5cmn (q, a, b, x, s, t) {
+ return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
+ }
+ function md5ff (a, b, c, d, x, s, t) {
+ return md5cmn((b & c) | ((~b) & d), a, b, x, s, t)
+ }
+ function md5gg (a, b, c, d, x, s, t) {
+ return md5cmn((b & d) | (c & (~d)), a, b, x, s, t)
+ }
+ function md5hh (a, b, c, d, x, s, t) {
+ return md5cmn(b ^ c ^ d, a, b, x, s, t)
+ }
+ function md5ii (a, b, c, d, x, s, t) {
+ return md5cmn(c ^ (b | (~d)), a, b, x, s, t)
+ }
+
+ /*
+ * Calculate the MD5 of an array of little-endian words, and a bit length.
+ */
+ function binlMD5 (x, len) {
+ /* append padding */
+ x[len >> 5] |= 0x80 << (len % 32)
+ x[(((len + 64) >>> 9) << 4) + 14] = len
+
+ var i
+ var olda
+ var oldb
+ var oldc
+ var oldd
+ var a = 1732584193
+ var b = -271733879
+ var c = -1732584194
+ var d = 271733878
+
+ for (i = 0; i < x.length; i += 16) {
+ olda = a
+ oldb = b
+ oldc = c
+ oldd = d
+
+ a = md5ff(a, b, c, d, x[i], 7, -680876936)
+ d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
+ c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
+ b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
+ a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
+ d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
+ c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
+ b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
+ a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
+ d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
+ c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
+ b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
+ a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
+ d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
+ c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
+ b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)
+
+ a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
+ d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
+ c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
+ b = md5gg(b, c, d, a, x[i], 20, -373897302)
+ a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
+ d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
+ c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
+ b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
+ a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
+ d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
+ c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
+ b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
+ a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
+ d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
+ c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
+ b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)
+
+ a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
+ d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
+ c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
+ b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
+ a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
+ d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
+ c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
+ b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
+ a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
+ d = md5hh(d, a, b, c, x[i], 11, -358537222)
+ c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
+ b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
+ a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
+ d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
+ c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
+ b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)
+
+ a = md5ii(a, b, c, d, x[i], 6, -198630844)
+ d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
+ c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
+ b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
+ a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
+ d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
+ c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
+ b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
+ a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
+ d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
+ c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
+ b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
+ a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
+ d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
+ c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
+ b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)
+
+ a = safeAdd(a, olda)
+ b = safeAdd(b, oldb)
+ c = safeAdd(c, oldc)
+ d = safeAdd(d, oldd)
+ }
+ return [a, b, c, d]
+ }
+
+ /*
+ * Convert an array of little-endian words to a string
+ */
+ function binl2rstr (input) {
+ var i
+ var output = ''
+ var length32 = input.length * 32
+ for (i = 0; i < length32; i += 8) {
+ output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF)
+ }
+ return output
+ }
+
+ /*
+ * Convert a raw string to an array of little-endian words
+ * Characters >255 have their high-byte silently ignored.
+ */
+ function rstr2binl (input) {
+ var i
+ var output = []
+ output[(input.length >> 2) - 1] = undefined
+ for (i = 0; i < output.length; i += 1) {
+ output[i] = 0
+ }
+ var length8 = input.length * 8
+ for (i = 0; i < length8; i += 8) {
+ output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32)
+ }
+ return output
+ }
+
+ /*
+ * Calculate the MD5 of a raw string
+ */
+ function rstrMD5 (s) {
+ return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
+ }
+
+ /*
+ * Calculate the HMAC-MD5, of a key and some data (raw strings)
+ */
+ function rstrHMACMD5 (key, data) {
+ var i
+ var bkey = rstr2binl(key)
+ var ipad = []
+ var opad = []
+ var hash
+ ipad[15] = opad[15] = undefined
+ if (bkey.length > 16) {
+ bkey = binlMD5(bkey, key.length * 8)
+ }
+ for (i = 0; i < 16; i += 1) {
+ ipad[i] = bkey[i] ^ 0x36363636
+ opad[i] = bkey[i] ^ 0x5C5C5C5C
+ }
+ hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
+ return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
+ }
+
+ /*
+ * Convert a raw string to a hex string
+ */
+ function rstr2hex (input) {
+ var hexTab = '0123456789abcdef'
+ var output = ''
+ var x
+ var i
+ for (i = 0; i < input.length; i += 1) {
+ x = input.charCodeAt(i)
+ output += hexTab.charAt((x >>> 4) & 0x0F) +
+ hexTab.charAt(x & 0x0F)
+ }
+ return output
+ }
+
+ /*
+ * Encode a string as utf-8
+ */
+ function str2rstrUTF8 (input) {
+ return unescape(encodeURIComponent(input))
+ }
+
+ /*
+ * Take string arguments and return either raw or hex encoded strings
+ */
+ function rawMD5 (s) {
+ return rstrMD5(str2rstrUTF8(s))
+ }
+ function hexMD5 (s) {
+ return rstr2hex(rawMD5(s))
+ }
+ function rawHMACMD5 (k, d) {
+ return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
+ }
+ function hexHMACMD5 (k, d) {
+ return rstr2hex(rawHMACMD5(k, d))
+ }
+
+ function md5 (string, key, raw) {
+ if (!key) {
+ if (!raw) {
+ return hexMD5(string)
+ }
+ return rawMD5(string)
+ }
+ if (!raw) {
+ return hexHMACMD5(key, string)
+ }
+ return rawHMACMD5(key, string)
+ }
+
+ if (typeof define === 'function' && define.amd) {
+ define(function () {
+ return md5
+ })
+ } else if (typeof module === 'object' && module.exports) {
+ module.exports = md5
+ } else {
+ $.md5 = md5
+ }
+}(this))
diff --git a/src/javascript/popup.js b/src/javascript/popup.js
index 27b6924..f2d2ae9 100644
--- a/src/javascript/popup.js
+++ b/src/javascript/popup.js
@@ -50,13 +50,13 @@ var buildResult = function(response) {
buildVoice(voiceCollection[i]);
}
} else {
- if (resultObj.errorCode == 20) {
+ if (resultObj.errorCode == 103) {
$queryResultContainer.innerHTML = "这段文字太长,词典君无能为力了(┬_┬)
试试短一点的吧~
";
- } else if (resultObj.errorCode == 40) {
+ } else if (resultObj.errorCode == 102) {
$queryResultContainer.innerHTML = "对不起,这段文字太高深了,请饶过词典君吧(┬_┬)
";
} else {
$queryResultContainer.innerHTML = "词典君罢工啦(┬_┬)
是不是网络不太好?
稍后再试一次吧
";
- }
+ }
}
};
@@ -149,7 +149,7 @@ var toggleKey = document.querySelector("#toggle-key");
var useHttps = document.querySelector("#useHttps");
var useHttpsValue = false;
-chrome.storage.sync.get(null, function (items) {
+chrome.storage.sync.get(null, function (items) {
if(items.currentWord !== "") {
queryInPopup(items.currentWord);
}
@@ -265,7 +265,7 @@ autoAudio.addEventListener("click", function (event) {
autoAudio.nextSibling.classList.add("unactive");
}
chrome.storage.sync.set({"autoAudio": currentAutoAudio}, function() {
- //console.log("[ChaZD] Success update settings autoAudio = " + currentAutoAudio);
+ //console.log("[ChaZD] Success update settings autoAudio = " + currentAutoAudio);
});
});
@@ -273,7 +273,7 @@ defaultUk.addEventListener("click", function (event) {
defaultUk.nextSibling.classList.remove("unactive");
defaultUs.nextSibling.classList.add("unactive");
chrome.storage.sync.set({"defaultVoice": 1}, function() {
- //console.log("[ChaZD] Success update settings defaultVoice = 1");
+ //console.log("[ChaZD] Success update settings defaultVoice = 1");
});
});
@@ -281,7 +281,7 @@ defaultUs.addEventListener("click", function (event) {
defaultUs.nextSibling.classList.remove("unactive");
defaultUk.nextSibling.classList.add("unactive");
chrome.storage.sync.set({"defaultVoice": 2}, function() {
- //console.log("[ChaZD] Success update settings defaultVoice = 2");
+ //console.log("[ChaZD] Success update settings defaultVoice = 2");
});
});
@@ -310,7 +310,7 @@ mouseSelect.addEventListener("click", function (event) {
noSelect.nextSibling.classList.add("unactive");
mouseSelect.nextSibling.classList.remove("unactive");
- useCtrl.nextSibling.classList.add("unactive");
+ useCtrl.nextSibling.classList.add("unactive");
chrome.storage.sync.set({"selectMode" : "mouseSelect"}, function() {
//console.log("[ChaZD] Success update settings selectMode = mouseSelect");
});
@@ -365,7 +365,7 @@ showDuration.addEventListener("input", function (event) {
chrome.storage.sync.set({"showDuration" : showDuration.value}, function() {
//console.log("[ChaZD] Success update settings toggleKey = " + this.value);
});
-});
+});
toggleKey.onchange = function (event) {
chrome.storage.sync.set({"toggleKey" : this.value}, function() {
@@ -375,7 +375,7 @@ toggleKey.onchange = function (event) {
// showDuration.addEventListener("onclick", function (event) {
// currentDuration.innerHTML = event.target.value;
-// updateSetting("duration", event.target.value);
+// updateSetting("duration", event.target.value);
// })
//在popup页内 Enter键 查询选中部分
diff --git a/src/javascript/selection.js b/src/javascript/selection.js
index 775f67d..c630df1 100644
--- a/src/javascript/selection.js
+++ b/src/javascript/selection.js
@@ -57,7 +57,7 @@
preSelection.again = 0;
return;
}
-
+
if (selectText === "" || !(/^[^\u4e00-\u9fa5]+$/.test(selectText))) {return;}
var haveResult = document.documentElement.querySelectorAll(".ChaZD-result-container");
for (var i = 0, len = haveResult.length; i < len; i++) {
@@ -73,7 +73,7 @@
}
else {
preSelection[key] = selectRange[key];
- }
+ }
}
if (currentSettings.showPosition === "side") {
//console.log("in 1");
@@ -83,7 +83,7 @@
//console.log("in 2");
showResultNear(selectText, currentSettings.useHttps, selectRange, event);
}
- }
+ }
};
var showResultSide = function (text, useHttps) {
@@ -141,7 +141,7 @@
clientHeight = document.documentElement.clientHeight;
}
//console.log("[ChaZD]clientHeight : " + clientHeight);
-
+
if (range.top >= 150) {
var bottom = clientHeight - top + 10;
var arrowBottom = bottom + 1;
@@ -229,16 +229,16 @@
}, function(response) {
var resultObj = response;
$searchingNode.innerHTML = "";
- if (resultObj.validMessage === "query success") {
+ if (resultObj.validMessage == "query success") {
$resultContainer.innerHTML = resultObj.titleBlock;
var singleVoiceButton = $resultContainer.querySelector(".voice-container");
buildVoice(singleVoiceButton);
-
+
//console.log("inner onclick:" + singleVoiceButton.onclick);
//console.log(document.querySelector(".voice-container") === singleVoiceButton);
-
+
var temp = document.createElement("div");
if (resultObj.basicBlock) {
temp.innerHTML = resultObj.basicBlock;
@@ -254,13 +254,13 @@
$resultContainer.innerHTML = "╮(╯▽╰)╭划词君无能为力啊
还是右键问问谷歌君吧=>";
}
} else {
- if (resultObj.errorCode == 20) {
+ if (resultObj.errorCode == 103) {
$resultContainer.innerHTML = "这段文字太长,词典君无能为力了(┬_┬)
试试短一点的吧~
";
- } else if (resultObj.errorCode == 40) {
+ } else if (resultObj.errorCode == 102) {
$resultContainer.innerHTML = "对不起,这段文字太高深了,请饶过词典君吧(┬_┬)
";
} else {
$resultContainer.innerHTML = "词典君罢工啦(┬_┬)
是不是网络不太好?
稍后再试一次吧
";
- }
+ }
}
});
@@ -288,7 +288,7 @@
}
function isExist(newRange, oldRange) {
- if (newRange.top === oldRange.top &&
+ if (newRange.top === oldRange.top &&
newRange.bottom === oldRange.bottom &&
newRange.left === oldRange.left &&
newRange.right === oldRange.right) {
@@ -296,7 +296,7 @@
}
return false;
}
-
+
var classNameCollection = ["ChaZD-result-container", "title-container", "title-word", "title-translation", "basic-container", "phonetic-container", "explains-container", "explains-container", "explains-list", "property-container", "explains-item", "voice-container", "us-phonetic-container", "uk-phonetic-container", "web-explains-container", "web-explains-list", "web-key", "explains-item-value", "web-value"];
document.documentElement.addEventListener("mousedown", function(event) {
@@ -341,7 +341,7 @@
}
////////currentQueryWord = "";
});
-
+
var queryEvent = function (event) {
//console.log("[ChaZD] current useCtrl: " + useCtrl);
if (currentSettings.selectMode === "noSelect") {return;}
@@ -421,7 +421,7 @@
window.getSelection().empty();
}
};
-
+
document.documentElement.addEventListener("mouseup", queryEvent);
document.documentElement.addEventListener("mouseover", function (e) {
if (e.target.nodeName === "A" || e.target.nodeName === "a") {
@@ -445,4 +445,3 @@
document.documentElement.addEventListener("keyup", enableLink);
document.documentElement.addEventListener("selectstart", queryEvent); //bug!!
})();
-
\ No newline at end of file
diff --git a/src/javascript/utility.js b/src/javascript/utility.js
index 0177041..a74f1ad 100644
--- a/src/javascript/utility.js
+++ b/src/javascript/utility.js
@@ -1,12 +1,12 @@
var api = {
- key: 1116151381,
- keyfrom : "youdaocidian"
+ key: 'APIID',
+ keyfrom : "密钥"
};
var urls = {
- dict : "http://fanyi.youdao.com/openapi.do?keyfrom=" + api.keyfrom +"&key="+ api.key +"&type=data&doctype=json&version=1.1&q=",
+ dict : "http://openapi.youdao.com/api?from=auto&to=zh-CHS&appKey="+ api.key +"&q=",
voice : "http://dict.youdao.com/dictvoice?audio=",
- dictHttps : "https://fanyi.youdao.com/openapi.do?keyfrom=" + api.keyfrom +"&key="+ api.key +"&type=data&doctype=json&version=1.1&q=",
+ dictHttps : "https://openapi.youdao.com/api?from=auto&to=zh-CHS&appKey="+ api.key + "&q=",
voiceHttps : "https://dict.youdao.com/dictvoice?audio=",
};