-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
1 lines (1 loc) · 19.7 KB
/
script.js
1
chrome.storage.sync.get("source_lang",function(t){null==t.source_lang&&(chrome.storage.sync.set({source_lang:"auto"}),location.reload())}),chrome.storage.sync.get("target_lang",function(t){null==t.target_lang&&(chrome.storage.sync.set({target_lang:"en"}),location.reload())});var appendinprogress=!1,popupx,popupy,text,spacelessText,dict,showImages,isPinned,selectedTimes,toRemind;chrome.storage.sync.get("pin_pos",function(t){null==t.pin_pos?(chrome.storage.sync.set({pin_pos:[!1,0,0]}),isPinned=!1):isPinned=t.pin_pos[0]}),chrome.storage.sync.get("disabled_sites",function(t){null==t.disabled_sites&&(chrome.storage.sync.set({disabled_sites:[]}),location.reload())}),chrome.storage.sync.get("disabled_sites",function(data){data.disabled_sites.includes(window.location.href)||($("body").prepend("<style>::selection {background-color:rgb(0,216,216) !important; color:white !important;}</style>"),chrome.storage.sync.get("show_images",function(data){null==data.show_images&&(chrome.storage.sync.set({show_images:!0}),location.reload()),showImages=data.show_images,chrome.storage.local.get("visiontranslate_thimg",function(data){null==data.visiontranslate_thimg&&chrome.storage.local.set({visiontranslate_thimg:'{"text":[0,0]}'}),chrome.storage.local.get("visiontranslate_thimg",function(data){dict=JSON.parse(data.visiontranslate_thimg),chrome.storage.local.get("visiontranslate_reminder",function(t){if(0!=t.visiontranslate_reminder){null==t.visiontranslate_reminder?(chrome.storage.local.set({visiontranslate_reminder:"{}"}),toRemind="{}"):toRemind=JSON.parse(t.visiontranslate_reminder);for(var e,n=Object.keys(toRemind).length,o=Object.keys(toRemind);n>0;)e=o[n-1],toRemind[e]+65<parseInt((new Date).getTime()/1e6)&&(setTimeout(function(){$.get(chrome.extension.getURL("remind_popup.html"),function(t,n){$("body").prepend(t),setTimeout(function(){$(".vt-reminder").css("opacity",1)},1e3),$(".textToTr").text(e.toLowerCase()),$("#vt-close").click(function(){$(".vt-reminder").fadeOut("fast"),toRemind[e]=toRemind[e]+10,chrome.storage.local.set({visiontranslate_reminder:JSON.stringify(toRemind)})}),$("#vt-disable").click(function(){confirm("Are you sure you want to disable reminder popups?")&&(toRemind=!1,chrome.storage.local.set({visiontranslate_reminder:!1}),$(".vt-reminder").fadeOut("fast"))}),$.get("https://translate.googleapis.com/translate_a/single?client=gtx&multires=1&sl=auto&tl=en&dt=t&q="+encodeURI(e.toLowerCase()),function(t,n){var o=decodeURI(t[0][0][0]);url="https://pixabay.com/api/?key=14205092-cf0ea1d85b1739958062a5b7c&q="+o+"&image_type=all&orientation=horizontal&safesearch=true&per_page=200",$.get(url,function(t,n){t.hits[dict[e.toUpperCase().replace(/\s/g,"")][1]]?$("#vt-reminder-img, #vt-reminder-bg").css("background-image","url("+t.hits[dict[e.toUpperCase().replace(/\s/g,"")][1]].webformatURL+")"):($("#vt-right-cont").remove(),$(".vt-reminder").css("width","300px"))})}),chrome.storage.sync.get("target_lang",function(t){var n="https://translate.googleapis.com/translate_a/single?client=gtx&multires=1&sl=auto&tl="+t.target_lang+"&dt=t&q="+encodeURI(e.toLowerCase());$.get(n,function(t,n){$("#vt-input").on("input",function(){$("#vt-input").val().toUpperCase().trim()==t[0][0][0].toUpperCase().trim()&&setTimeout(function(){$(".vt-reminder").empty(),$(".vt-reminder").css("background-color","rgb(140,255,140)"),$(".vt-reminder").prepend("<div style='z-index:999; display:block !important; box-sizing: content-box !important; text-shadow:none !important; box-shadow:none !important; margin:0 !important; background-image:none !important; padding:none !important; position:absolute !important; top:50% !important; transform:translateY(-50%) !important; width:100% !important; height:auto !important; text-align:center !important; border:none !important;'><h1 style='text-shadow:none !important; box-shadow:none !important; margin:0 !important; background-image:none !important; padding:none !important; color:white !important; font-family:\"Heebo\", sans-serif !important; font-size:55px !important; font-weight:lighter !important;'>Correct!</h1></div><img src="+chrome.extension.getURL("smile.svg")+" width='160px' height='160px' style='text-shadow:none !important; box-shadow:none !important; margin:0 !important; background-image:none !important; padding:none !important; opacity:0.15 !important; position:absolute !important; right:-30px !important; bottom:-30px !important;'>"),setTimeout(function(){$(".vt-reminder").fadeOut("fast")},1e3),delete toRemind[e],chrome.storage.local.set({visiontranslate_reminder:JSON.stringify(toRemind)})},400)}),$("#vt-fill").click(function(){$("#vt-input").val(t[0][0][0])})})})})},5e3+5e3*Math.floor(10*Math.random())),n=-9999),n--}});var isMouseOnPopup=!1,lastText,thImg;function appender(){text=getSelectionText(),spacelessText=text.toUpperCase().replace(/\s+/g,"").replace(/-/g,""),"string"==typeof text&&""!=text&&" "!=text&&" "!=text&&createPopup()}function createPopup(){$.get(chrome.extension.getURL("/translate_popup.html"),function(data,status){$("body").prepend(data),isPinned&&$("#vt-pin").css({opacity:1,transform:"rotate(-45deg) scale(1.1)","background-color":"rgb(115,245,115)"}),$("#close").attr("src",chrome.extension.getURL("/close.svg")),$("#prev").attr("src",chrome.extension.getURL("/right-chevron.svg")),$("#next").attr("src",chrome.extension.getURL("/right-chevron.svg")),$("#vt-pin").attr("src",chrome.extension.getURL("/pin.svg")),$(".visiontranslate-popup").css({position:"fixed",top:popupy,left:popupx}),createTranslation(),pin(),$(".visiontranslate-popup").mousedown(function(){isMouseOnPopup=!0}),$(".visiontranslate-popup").mouseup(function(){isMouseOnPopup=!1}),showImages&&text.split(" ").length<=3&&text.length<=30&&(eval("dict."+spacelessText.replace(/-/g," "))&&"boolean"==typeof eval("dict."+spacelessText)[1]?openImage():closeImage()),dragElement(document.getElementsByClassName("visiontranslate-popup")[0]),addListener()})}function createTranslation(){var t,e;chrome.storage.sync.get("source_lang",function(e){t=e.source_lang,o()}),chrome.storage.sync.get("target_lang",function(t){e=t.target_lang,o()});var n=!1;function o(){if(1==n){if(text.split(" ").length<=3&&text.length<=30){showImages?preLoadImage():$(".img-cont").remove(),$("#visiontranslate-source").text(text);var o="https://translate.googleapis.com/translate_a/single?client=gtx&multires=1&sl="+t+"&tl="+e+"&dt=t&q="+encodeURI(text);$.get(o,function(t,e){if(t[0][0][0].replace(/\s/g,"")!=text.replace(/\s/g,"")){var n;dict[spacelessText]?"number"==typeof dict[spacelessText][0]&&dict[spacelessText][0]++:dict[spacelessText]=[0,0],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),dict[spacelessText][0]>=4&&null!=toRemind&&(dict[spacelessText][0]=0,chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),toRemind[text.toUpperCase().trim()]=parseInt((new Date).getTime()/1e6),chrome.storage.local.set({visiontranslate_reminder:JSON.stringify(toRemind)})),t[0][0][0].toString().toUpperCase().replace(/,/g,"").replace(/\./g," ").replace(/\s/g,"")!=text.toString().toUpperCase().replace(/,/g,"").replace(/\./g," ").replace(/\s/g,"")&&$(".visiontranslate-popup").css("display","block"),$("#visiontranslate-translation").text(t[0][0][0]);for(var o=window.getSelection().anchorNode.parentNode.innerText.replace(/([.?!])\s*(?=[A-Z])/g,"$1|").split("|"),s=o[0],a=0;!o[a].includes(text);)s=o[a+1],a++;if(s.length<=115)i(n=s);else{var r=s;a=0;for(n=(r=r.replace(/, | - | — /gi,"|").split("|"))[0];!r[a].includes(text);)n=r[a+1],a++;if(n.length<=120&&n.length>=text.length+2)i(n);else{var p="",c="",l=s.substr(0,s.indexOf(text)).split(" "),m=s.substr(s.indexOf(text)+text.length,s.length).split(" ");""==l[l.length-1]&&(p=" "),""==m[0]&&(c=" ");l=l.filter(function(t){return""!=t|" "}),m=m.filter(function(t){return""!=t|" "});l=l[l.length-2]?l[l.length-2]+" "+l[l.length-1]:l[l.length-1]?l[l.length-1]:"",m=m[1]?m[0]+" "+m[1]:m[0]?m[0]:"",(n=l+p+text+c+m).length<=130?i(n):(l=l[l.length-1],m=m[0],(n=l+p+text+c+m).length<=130&&i(n))}}}}),$(".vt-link").attr("href","https://translate.google.com/#view=home&op=translate&sl="+t+"&tl="+e+"&text="+text)}else{removeImage(),$(".oneword h3, .oneword h1").remove(),$(".visiontranslate-popup .vt-link").remove();o="https://translate.googleapis.com/translate_a/single?client=gtx&multires=1&sl="+t+"&tl="+e+"&dt=t&q="+encodeURI(text);$.get(o,function(t,e){for(var n="",o=t[0].length,i=t[0].length;o>=1;)n=n+" "+t[0][i-o][0],o--;t[0][0][0].toString().toUpperCase().replace(/,/g,"").replace(/\./g," ").replace(/\s/g,"")!=text.toString().toUpperCase().replace(/,/g,"").replace(/\./g," ").replace(/\s/g,"")&&($(".visiontranslate-popup").css("display","block"),$(".vt-context").css({"text-align":"justify","line-height":"17px",margin:"10px","margin-left":"6px","margin-right":"6px"}),$(".vt-context").html(text+" <br><strong>—</strong><br> "+n))})}function i(n){var o="https://translate.googleapis.com/translate_a/single?client=gtx&multires=1&sl="+t+"&tl="+e+"&dt=t&q="+encodeURI(n);$.get(o,function(t,e){var o=n.substr(0,n.indexOf(text)),i=n.substr(n.indexOf(text)+text.length,n.length),s=o+'<span id="highl" style="background-color: rgba(0,216,216,0.25) !important;">'+text+"</span>"+i;text.replace(/\s/g,"")!=n.replace(/\s/g,"")?$(".vt-context").html(s+" <strong>—</strong><br> "+t[0][0][0]):($(".oneword").css("margin-bottom","-8px"),$(".vt-context").remove())})}n=!1}else n=!0}}function getSelectionText(){var t="";return window.getSelection?t=window.getSelection().toString():document.selection&&"Control"!=document.selection.type&&(t=document.selection.createRange().text),t}function addListener(){for(var t=document.querySelectorAll("*"),e=0;e<t.length;e++)t[e].addEventListener("mouseup",getPopupPosition)}function getPopupPosition(t){isPinned?chrome.storage.sync.get("pin_pos",function(t){popupx=t.pin_pos[1]+"px",popupy=t.pin_pos[2]+"px"}):(popupy=t.clientY-297+"px",popupx=t.clientX-230+"px",t.clientY<screen.height/2&&(popupy=t.clientY+16+"px"),t.clientX<screen.width/2&&(popupx=t.clientX+9+"px"))}function dragElement(t){if(!isPinned){function e(e){(e=e||window.event).preventDefault(),pos1=pos3-e.clientX,pos2=pos4-e.clientY,pos3=e.clientX,pos4=e.clientY,t.style.top=t.offsetTop-pos2+"px",t.style.left=t.offsetLeft-pos1+"px"}function n(){document.onmouseup=null,document.onmousemove=null}t.onmousedown=function(t){(t=t||window.event).preventDefault(),pos3=t.clientX,pos4=t.clientY,document.onmouseup=n,document.onmousemove=e}}}$("body").mousedown(function(){if(!isMouseOnPopup){var t=getSelectionText();$("body").mouseup(function(){$("body").unbind("mouseup"),t==getSelectionText()||$("input").is(":focus")||$("textarea").is(":focus")?$(".visiontranslate-popup").remove():"string"==typeof getSelectionText()&&""!=getSelectionText()?($(".visiontranslate-popup").remove(),appender()):$(".visiontranslate-popup").fadeOut("fast")})}}),addListener();var englishText=text,numOfImages=3,buttontimer;function preLoadImage(){$.get("https://translate.googleapis.com/translate_a/single?client=gtx&multires=1&sl=auto&tl=en&dt=t&q="+encodeURI(text),function(t,e){englishText=decodeURI(t[0][0][0]),loadImage()})}function loadImage(){if(eval("dict."+spacelessText)){if("boolean"==typeof eval("dict."+spacelessText)[1])return void removeImage();"number"==typeof eval("dict."+spacelessText)[1]&&(thImg=eval("dict."+spacelessText)[1])}else thImg=0;var api_key="14205092-cf0ea1d85b1739958062a5b7c";function imgLoad(){$(".visiontranslate-popup #img").css("opacity","1")}numOfImages=thImg>=3?thImg+1:3,url="https://pixabay.com/api/?key=14205092-cf0ea1d85b1739958062a5b7c&q="+englishText+"&image_type=all&orientation=horizontal&safesearch=true&per_page=200",$.get(url,function(t,e){t.hits[thImg]?($(".visiontranslate-popup #img").attr("src",t.hits[thImg].webformatURL),$(".visiontranslate-popup #img").css({height:230.4/t.hits[thImg].webformatWidth*t.hits[thImg].webformatHeight+"px",opacity:"0"}),$(".visiontranslate-credit").css({position:"absolute",top:230.4/t.hits[thImg].webformatWidth*t.hits[thImg].webformatHeight+"px"}),$("#next").click(function(){thImg++,$("#next").unbind("click"),$("#prev").unbind("click"),dict[spacelessText]?dict[spacelessText][1]=thImg:dict[spacelessText]=[0,thImg],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),loadImage()}),$("#prev").click(function(){thImg--,$("#next").unbind("click"),$("#prev").unbind("click"),dict[spacelessText]?dict[spacelessText][1]=thImg:dict[spacelessText]=[0,thImg],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),loadImage()}),t.totalHits<=thImg+1?($("#next").css({opacity:"0.5","pointer-events":"none"}),$("#next").unbind("click")):$("#next").css({opacity:"1","pointer-events":"auto"}),thImg>0?$("#prev").css({opacity:"1","pointer-events":"auto"}):($("#prev").css({opacity:"0.5","pointer-events":"none"}),$("#prev").unbind("click"))):0==thImg&&removeImage()}),lastText=text,setTimeout(function(){},200),document.getElementById("img").addEventListener("load",imgLoad)}function removeImage(){$(".visiontranslate-popup").ready(function(){$(".visiontranslate-popup .img-cont").hide()})}function closeImage(){$("#close").click(function(){dict[spacelessText]?dict[spacelessText][1]=!1:dict[spacelessText]=[0,!1],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),$(".visiontranslate-popup .img-cont").slideUp(300),$(".visiontranslate-icons").fadeOut(300),$(".visiontranslate-popup").prepend('<img id="reopen" src="'+chrome.extension.getURL("/right-chevron.svg")+'" style="display: block !important;position: absolute;top: -40px;right:calc(50% - 5.76px);width: 11.52px !important;height: auto !important;padding: 7.68px !important;border-radius: 38.4px !important;margin:0.384px !important;cursor: pointer !important;transform: rotate(270deg);background-color: rgb(250,215,135) !important; transition: 0.2s !important;border:none !important;box-sizing: content-box !important;opacity:0; z-index: 999999 !important;">'),$(".visiontranslate-popup").mouseenter(function(){$("#reopen").css("opacity","1"),clearTimeout(buttontimer)}),$(".visiontranslate-popup").mouseleave(function(){buttontimer=setTimeout(function(){$("#reopen").css("opacity","0")},650)}),$(".visiontranslate-popup #reopen").mouseenter(function(){$(".visiontranslate-popup #reopen").css({transform:"rotate(270deg) scale(1.1)"})}),$(".visiontranslate-popup #reopen").mouseleave(function(){$(".visiontranslate-popup #reopen").css({transform:"rotate(270deg)"})}),$(".visiontranslate-popup #reopen").click(function(){dict[spacelessText]?dict[spacelessText][1]=0:dict[spacelessText]=[0,0],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),$(".visiontranslate-popup #reopen").fadeOut(300),$(".visiontranslate-popup #reopen").unbind("click"),$(".visiontranslate-popup #reopen, .visiontranslate-popup").unbind("mouseenter"),$(".visiontranslate-popup #reopen, .visiontranslate-popup").unbind("mouseleave"),setTimeout(function(){$(".visiontranslate-popup #reopen").remove(),$(".visiontranslate-popup .img-cont").slideDown(300),$(".visiontranslate-icons").fadeIn(300)},300)})})}function openImage(){$(".visiontranslate-popup .img-cont").slideUp(0),$(".visiontranslate-icons").fadeOut(0),$(".visiontranslate-popup").prepend('<img id="reopen" src="'+chrome.extension.getURL("/right-chevron.svg")+'" style="display: block !important;position: absolute;top: -40px;right:calc(50% - 5.76px);width: 11.52px !important;height: auto !important;padding: 7.68px !important;border-radius: 38.4px !important;margin:0.384px !important;cursor: pointer !important;transform: rotate(270deg);background-color: rgb(250,215,135) !important;transition: 0.2s !important;border:none !important;box-sizing: content-box !important;opacity:0; z-index: 999999 !important;">'),$(".visiontranslate-popup").mouseenter(function(){$("#reopen").css("opacity","1"),clearTimeout(buttontimer)}),$(".visiontranslate-popup").mouseleave(function(){buttontimer=setTimeout(function(){$("#reopen").css("opacity","0")},650)}),$(".visiontranslate-popup #reopen").mouseenter(function(){$(".visiontranslate-popup #reopen").css({transform:"rotate(270deg) scale(1.1)"})}),$(".visiontranslate-popup #reopen").mouseleave(function(){$(".visiontranslate-popup #reopen").css({transform:"rotate(270deg)"})}),$(".visiontranslate-popup #reopen").click(function(){dict[spacelessText]?dict[spacelessText][1]=0:dict[spacelessText]=[0,0],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),$(".visiontranslate-popup #reopen").fadeOut(300),$(".visiontranslate-popup #reopen").unbind("click"),$(".visiontranslate-popup #reopen, .visiontranslate-popup").unbind("mouseenter"),$(".visiontranslate-popup #reopen, .visiontranslate-popup").unbind("mouseleave"),setTimeout(function(){$(".visiontranslate-popup #reopen").remove(),$(".visiontranslate-popup .img-cont").slideDown(300),$(".visiontranslate-icons").fadeIn(300),loadImage()},300),$("#close").click(function(){dict[spacelessText]?dict[spacelessText][1]=!1:dict[spacelessText]=[0,!1],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),$(".visiontranslate-popup .img-cont").slideUp(300),$(".visiontranslate-icons").fadeOut(300),$(".visiontranslate-popup").prepend('<img id="reopen" src="'+chrome.extension.getURL("/right-chevron.svg")+'" style="display: block !important;position: absolute;top: -40px;right:calc(50% - 5.76px);width: 11.52px !important;height: auto !important;padding: 7.68px !important;border-radius: 38.4px !important;margin:0.384px !important;cursor: pointer !important;transform: rotate(270deg);background-color: rgb(250,215,135) !important;transition: 0.2s !important;border:none !important;box-sizing: content-box !important;opacity:0; z-index: 999999 !important;">'),$(".visiontranslate-popup").mouseenter(function(){$("#reopen").css("opacity","1"),clearTimeout(buttontimer)}),$(".visiontranslate-popup").mouseleave(function(){buttontimer=setTimeout(function(){$("#reopen").css("opacity","0")},650)}),$(".visiontranslate-popup #reopen").mouseenter(function(){$(".visiontranslate-popup #reopen").css({transform:"rotate(270deg) scale(1.1)"})}),$(".visiontranslate-popup #reopen").mouseleave(function(){$(".visiontranslate-popup #reopen").css({transform:"rotate(270deg)"})}),$(".visiontranslate-popup #reopen").click(function(){dict[spacelessText]?dict[spacelessText][1]=0:dict[spacelessText]=[0,0],chrome.storage.local.set({visiontranslate_thimg:JSON.stringify(dict)}),$(".visiontranslate-popup #reopen").fadeOut(300),$(".visiontranslate-popup #reopen").unbind("click"),$(".visiontranslate-popup #reopen, .visiontranslate-popup").unbind("mouseenter"),$(".visiontranslate-popup #reopen, .visiontranslate-popup").unbind("mouseleave"),setTimeout(function(){$(".visiontranslate-popup #reopen").remove(),$(".visiontranslate-popup .img-cont").slideDown(300),$(".visiontranslate-icons").fadeIn(300)},300)})})})}var isMouseBack=!1;function pin(){$(".visiontranslate-popup").mouseenter(function(){$("#vt-pin").css("opacity",1),isMouseBack=!0}),$(".visiontranslate-popup").mouseleave(function(){isMouseBack=!1,setTimeout(function(){isMouseBack||$("#vt-pin").css("opacity",0)},650)}),$("#vt-pin").click(function(){isPinned?($("#vt-pin").css({transform:"rotate(-45deg)","background-color":"rgb(0,216,216)"}),$("#vt-pin").unbind("mouseenter"),$("#vt-pin").unbind("mouseleave"),$(".visiontranslate-popup").mouseenter(function(){$("#vt-pin").css("opacity",1),isMouseBack=!0}),$(".visiontranslate-popup").mouseleave(function(){isMouseBack=!1,setTimeout(function(){isMouseBack||$("#vt-pin").css("opacity",0)},650)}),chrome.storage.sync.set({pin_pos:[!1,0,0]}),isPinned=!1,dragElement(document.getElementsByClassName("visiontranslate-popup")[0])):(isPinned=!0,document.getElementsByClassName("visiontranslate-popup")[0].onmousedown="",$("#vt-pin").unbind("mouseenter"),$("#vt-pin").unbind("mouseleave"),$("#vt-pin").css({opacity:1,transform:"rotate(-45deg) scale(1.1)","background-color":"rgb(115,245,115)"}),chrome.storage.sync.set({pin_pos:[!0,document.getElementsByClassName("visiontranslate-popup")[0].offsetLeft,document.getElementsByClassName("visiontranslate-popup")[0].offsetTop]}))})}})})}))});