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 还是右键问问谷歌君吧=>"}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:'
    #{1}
',explain:'
  • #{1}#{2}
  • ',propertyContainer:'#{2}',webExplainsContainer:'
    网络释义及短语
    #{1}
    ',webExplainsList:'
      #{1}
    ',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:'
      #{1}
    ',explain:'
  • #{1}#{2}
  • ',propertyContainer:'#{2}',webExplainsContainer:'
    网络释义及短语
    #{1}
    ',webExplainsList:'
      #{1}
    ',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=", };