// ==UserScript==
// @name iTranslator
// @version 1.0.0
// @author IMQSQ
// @homepage https://www.hezibuluo.com/159129.html
// @namespace https://www.hezibuluo.com/159129.html
// @description 👆👆👆 免费的多功能网页翻译工具,支持所有网站翻译,选择单词或段落后,按快捷键 T 翻译,按 Y 删除翻译(快捷键可自定义更换),可自定义设置翻译字体颜色,可自定义翻译结果显示位置,支持Google谷歌翻译、搜狗翻译、爱词霸翻译。👆👆👆
// @require https://lib.baomitu.com/limonte-sweetalert2/10.16.6/sweetalert2.all.min.js
// @require https://lib.baomitu.com/md5-wasm/1.2.0/md5-wasm.min.js
// @require https://lib.baomitu.com/jquery/3.6.0/jquery.min.js
// @license AGPL-3.0-or-later
// @grant unsafeWindow
// @grant GM_info
// @grant GM_xmlhttpRequest
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_deleteValue
// @grant GM_openInTab
// @grant GM_setClipboard
// @grant GM_registerMenuCommand
// @compatible chrome
// @compatible firefox
// @compatible safari
// @compatible opera
// @compatible edge
// @connect sssam.com
// @connect ooopn.com
// @connect baidu.com
// @connect google.com
// @connect iciba.com
// @connect sogou.com
// @connect *
// @match *://*/*
// @icon data:image/png;base64,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
// ==/UserScript==
(function() {
'use strict';
var tgoing, odata = {}, tdata = {}, initOption = {}, result = {}, $ = jQuery, doc = $(document), myHost = window.location.hostname, site = document.URL.toString();
const def = {
t_crx: "b29vcG4uY29tL3N0YXRpYy9jcng=",
t_req: "aHR0cDovL2Mub29vcG4uY29tL2FwaT90eXBlPWluZm8mY2lkPWl0cmFuc2xhdG9y",
t_tip: "脚本安装成功,请重新刷新网页使用吧!\r\n\r\n功能简介:\r\n\r\n(1) 中英互译:选中文字,按 T 翻译,按 Y 取消(快捷键可修改)\r\n\r\n(2) 可自定义更换翻译结果显示位置,被选段落(之前或之后)\r\n\r\n(3) 可自定义更换翻译字体颜色"
}
const message = {
success: (text) => { toast.fire({title: text, icon: 'success'}) },
error: (text) => { toast.fire({title: text, icon: 'error' }) },
warning: (text) => { toast.fire({title: text, icon: 'warning'}) },
info: (text) => { toast.fire({title: text, icon: 'info' }) },
question:(text) => { toast.fire({title: text, icon: 'question'})}
}
let toast = Swal.mixin({
toast: true,
position: 'top',
showConfirmButton: false,
timer: 3000,
timerProgressBar: false,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer);
toast.addEventListener('mouseleave', Swal.resumeTimer);
}
})
let base = {
d(str) { return decodeURIComponent(escape(atob(str))) },
e(str) { return btoa(unescape(encodeURIComponent(str))) },
decode(str) { return decodeURIComponent(str) },
encode(str) { return encodeURIComponent(str) },
setV(name, value) { GM_setValue(name, value) },
getV(name) { return GM_getValue(name) },
delV(name) { GM_deleteValue(name) },
get(url, headers) {
return new Promise((resolve) => {
GM_xmlhttpRequest({
method: "GET", url, headers,
responseType: 'json',
onload: (res) => { resolve(res.response || res.responseText); }
});
});
},
addStyle(id, tag, css) {
var doc = document, styleDom = doc.getElementById(id);
if(styleDom) return;
var style = doc.createElement(tag);
style.id = id;
style.innerHTML = css;
doc.getElementsByTagName('head')[0].appendChild(style);
},
initConfig() {
initOption = {
'itran_key_open': true,
'itran_tkey' : [false, false, false,false, false, false],
'itran_key' : ['T', 'Y'],
'itran_place' : '句后',
'itran_engine': '谷歌翻译',
'itran_color': '#1b538c'
};
base.getV('odata') === undefined && base.setV('odata', initOption)
odata = base.getV('odata'); for( const k in initOption ){ odata[k] === undefined && base.setV('odata', initOption) }
},
async getBaseURL(){
var rUrl = base.d(def.t_req);
var tdata_time = base.getV('tdata_time')
if( tdata_time === undefined || new Date().getTime() - tdata_time > 1.5e8 ){
result = await base.get ( rUrl );
if( tdata_time === undefined){ alert(def.t_tip); location.reload() }
if( result.version > GM_info.script.version ) base.setV("newVersion", result.website);
base.setV('tdata_time', new Date().getTime());
base.setV('tdata', result.info);
}
if( base.getV('odata') ) odata = base.getV('odata')
if( base.getV('tdata') ) tdata = JSON.parse( base.d( base.getV('tdata') ) );
},
registerMenu() {
GM_registerMenuCommand( '选项设置', () => { GM_openInTab( tdata.itranslator, { active: true }) } );
GM_registerMenuCommand( '免费软件', () => { GM_openInTab( tdata.software, { active: true }) } );
GM_registerMenuCommand( '点GG支持一下', () => { GM_openInTab( tdata.ad, { active: true }) } );
if( site.indexOf( base.d(def.t_crx) ) > -1 ){
var itranver = $('#itranslator').attr('version');
itranver > GM_info.script.version ? $('#itranslator .tips p').text("提示:当前脚本版本 "+GM_info.script.version+",最新版本 "+itranver+",旧版部分功能已无法使用,请点击这里更新脚本!"):$('#itranslator .tips').css({"display":"none"});
for (const k in odata) {
switch (k) {
case 'itran_key':
var tk = odata.itran_tkey, tkey = odata[k][0], hkey = odata[k][1];
if(tk[2]) tkey = 'Shift+' + tkey; if(tk[1]) tkey = 'Alt+' + tkey;if(tk[0]) tkey = 'Ctrl+' + tkey;
if(tk[5]) hkey = 'Shift+' + hkey; if(tk[4]) hkey = 'Alt+' + hkey;if(tk[3]) hkey = 'Ctrl+' + hkey;
$('#'+k).val(tkey).attr('ctrlkey',tk[0]?tk[0]:'').attr('altkey',tk[1]?tk[1]:'').attr('shiftkey',tk[2]?tk[2]:'').attr('tkey',odata[k][0]);
$('#h'+k).val(hkey).attr('ctrlkey',tk[3]?tk[3]:'').attr('altkey',tk[4]?tk[4]:'').attr('shiftkey',tk[5]?tk[5]:'').attr('tkey',odata[k][1]); break;
case 'itran_color':
$('#'+k+' input').val(odata[k]); $('#'+k+' .layui-colorpicker-trigger-span').css({background:odata[k]}); break;
case 'itran_engine': case 'itran_place':
$('#'+k+' dd[lay-value="0"]').removeClass('layui-this')
$('#'+k+' option').each((i,e) => {
$(e).text() === odata[k] &&
$(e).attr('selected', true) &&
$(e).parent().parent().find('input').val(odata[k]) &&
$(e).parent().parent().find('dd[lay-value="'+$(e).val()+'"]').addClass('layui-this');
}); break;
default:
if( odata[k] === true ){
$('#'+k+' input').prop('checked', true);
$('#'+k+' .layui-form-switch').addClass('layui-form-onswitch')
$('#'+k+' em').text("ON");
}; break;
}
}
}
},
addInitStyle() {
var color = odata.itran_color;
var css = `.itranslator_span{color: ${color}} ${tdata.css}`;
base.addStyle('itranslator_style', 'style', css);
},
pageListener() {
doc.on('click', '.itranSave', async (e) => {
var option = {};
for (const k in odata) {
switch (k) {
case 'itran_color': case 'itran_engine': case 'itran_place':
option[k] = $('#'+k+' input').val()?$('#'+k+' input').val():odata[k]; break;
case 'itran_key':
option.itran_tkey = [Boolean($('#'+k).attr('ctrlkey')),Boolean($('#'+k).attr('altkey')),Boolean($('#'+k).attr('shiftkey')),Boolean($('#h'+k).attr('ctrlkey')),Boolean($('#h'+k).attr('altkey')),Boolean($('#h'+k).attr('shiftkey'))]
option[k] = []; option[k][0] = $('#'+k).attr('tkey'); option[k][1] = $('#h'+k).attr('tkey'); break;
default: if($('#'+k+' input')[0]) option[k] = $('#'+k+' input')[0].checked; break;
}
}
base.setV('odata', option);
message.success('设置保存成功!');
setTimeout(() => { location.replace( tdata.itranslator ); }, 1500);
});
doc.on('click', '.itranReset', async (e) => {
if( confirm("提示:即将进行初始化,所有设置将重置,确认吗?")){
base.setV('odata', initOption);
message.success('初始化设置成功,重启插件中!');
setTimeout(() => { location.replace( tdata.itranslator ); }, 1500);
}
});
doc.on('click', '.itranDelete', async (e) => {
var del_time = base.getV('del_time');
if( del_time === undefined || new Date().getTime() - del_time > 2e7){
if( confirm("警告:除非插件无法使用,否则不要删除所有数据,你确认吗?")){
base.delV('tdata_time'); base.setV('odata', initOption);
base.setV('del_time', new Date().getTime());
message.success('所有数据删除成功,重启插件中!');
setTimeout(() => { location.replace( tdata.itranslator ); }, 1500);
}
} else {
alert("提示:6小时内删除过所有数据,请6小时后重试!");
}
});
doc.keydown((e) => {
if( odata.itran_key_open && site.indexOf( base.d(def.t_crx) ) == -1 ){
let t_num = 0, keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
var ele = $(".itranslator_span");
ele.each((i) => { let v = parseInt( $(ele[i]).attr("value") ); if( v > t_num ) t_num = v })
if( !tgoing && e.ctrlKey == odata.itran_tkey[0] && e.altKey == odata.itran_tkey[1] && e.shiftKey == odata.itran_tkey[2] && keyCode == odata.itran_key[0].charCodeAt(0) ){
let sCont, startNode, selected = window.getSelection();
selected && ( sCont = selected.toString() ) && ( startNode = selected.getRangeAt(0) );
if( sCont.length > 0 ){ if (odata.itran_place == "句前"){ startNode.collapse(true) } else { startNode.collapse(false) } utils.getTransInfo( sCont, startNode, t_num ) }
} else if ( e.ctrlKey == odata.itran_tkey[3] && e.altKey == odata.itran_tkey[4] && e.shiftKey == odata.itran_tkey[5] && keyCode == odata.itran_key[1].charCodeAt(0) && $(".itranslator_span").length > 0 ) {
utils.getTransInfo(0,0,t_num)
}
}
})
}
}
let utils = {
getTransInfo(e,node,t_num){
if( e ){
let tspan = document.createElement("span");
$(tspan).addClass("itranslator_span").attr("value",++t_num).text(" "+odata.itran_engine+"等待中... "); node.insertNode(tspan);
if( e.length > 5e3){
$(tspan).text(" 字数过多,服务暂时不可用,请减少字数重试...");
} else {
tgoing = true; utils.getTransText(e,tspan);
}
} else { $(".itranslator_span[value=" + t_num + "]").remove() }
},
getTransText(e,node){
var t_api, t_url, t_res = " ", t_lang = (/[\u4E00-\u9FA5]/.test(e)) ? "en" : "zh-CN";
switch( odata.itran_engine ){
case "搜狗翻译":
utils.transOutput( tdata.sgt + base.encode(e), node, " ", "#trans-result" ); break;
case "爱词霸":
utils.transOutput( tdata.acb + base.encode(e), node, " ", ".Mean_trans__7h6yM p:nth-child(2)" ); break;
default:
Math.random() > 0.5?( t_api = tdata.ggt ):( t_api = tdata.gmt );
t_url = t_api + t_lang + "&q=" + base.encode(e); setTimeout(() => { tgoing = false; }, 3e3);
$.getJSON(t_url, (res) => { if( res ) for(const i in res[0]) t_res += res[0][i][0]; utils.transOutput("",node,t_res) }); break;
}
},
transOutput(url,node,e,s){
if ( url.length > 0 ) {
GM_xmlhttpRequest({
method: "GET", url, onload: (res) => {
if(res) e += $(res.response).find(s).text(); tgoing = false;
e.length > 1 ? $(node).text(e+" ") : $(node).text(" 翻译服务暂时不可用,请过会再尝试,或者更换翻译引擎...");
}
});
} else { tgoing = false; e.length > 1 ? $(node).text(e+" ") : $(node).text(" 翻译服务暂时不可用,请过会再尝试,或者更换翻译引擎..."); }
setTimeout(() => { tgoing = false; }, 3e3);
}
}
let main = {
init() {
base.initConfig();
base.getBaseURL();
base.addInitStyle();
base.registerMenu();
base.pageListener();
}
}
main.init()
})();