-
-
Save gynix/8f33689f086e5c7deb6f70d8372980e7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function MD5 (input) { | |
var rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, input, Utilities.Charset.UTF_8); | |
var txtHash = ''; | |
for (i = 0; i < rawHash.length; i++) { | |
var hashVal = rawHash[i]; | |
if (hashVal < 0) { | |
hashVal += 256; | |
} | |
if (hashVal.toString(16).length == 1) { | |
txtHash += '0'; | |
} | |
txtHash += hashVal.toString(16); | |
} | |
return txtHash; | |
} | |
function youdaoTrans(query) { | |
if (!query) { return ''; } | |
var cache = CacheService.getScriptCache(); | |
var cached = cache.get(query); | |
//Logger.log(cached); | |
if (cached != null) { return cached; } | |
var key = '有道翻译-应用id'; | |
var secret = '有道翻译-应用密钥'; | |
var salt = 2; | |
var sign = MD5(key+query+salt+secret); | |
//Logger.log("https://openapi.youdao.com/api?from=EN&to=zh_CHS&q=" + query + '&appKey=' + key + '&salt=2&sign=' + sign); | |
var response = UrlFetchApp.fetch("https://openapi.youdao.com/api?from=EN&to=zh_CHS&q=" + query + '&appKey=' + key + '&salt=2&sign=' + sign); | |
var res = JSON.parse(response.getContentText()); | |
var ret = '' | |
if (res.basic) { | |
ret = '[' + res.basic['uk-phonetic'] + '] [' + res.basic['us-phonetic'] + '] ' | |
ret += res.basic.explains.join('; '); | |
if (query !== res.query) { | |
ret = res.query + ' ' + ret; | |
} | |
} else { | |
ret = res.translation.join('; ') | |
} | |
cache.put(query, ret, 21600); | |
return ret; | |
} | |
function freeze() { | |
var sh = SpreadsheetApp.getActiveSheet(); | |
var range = sh.getActiveRange() | |
var shval = range.setValues(range.getValues()); | |
} | |
function onOpen() { | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
ss.addMenu("助手", [{ | |
name: '锁定选区翻译结果', | |
functionName: 'freeze', | |
}]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment