local GET = require("Trans.util.curl").GET return function(word) local isEn = word:isEn() local result = {} local uri = ('https://v.api.aa1.cn/api/api-fanyi-yd/index.php?msg=%s&type=%d'):format(word, isEn and 2 or 1) GET(uri, { callback = function(str) local ok, res = pcall(vim.json.decode, str) if not ok or not res or not res.text or isEn and res.text:isEn() then result[1] = false return end result[1] = { title = { word = word }, [isEn and 'translation' or 'definition'] = res.text, } if result.callback then result.callback(result[1]) end end }) return result end -- local youdao = require("Trans").conf.engine.youdao -- local uri = 'https://openapi.youdao.com/api' -- local salt = tostring(math.random(bit.lshift(1, 15))) -- local appid = youdao.appid -- local appPasswd = youdao.appPasswd -- local post = require('Trans.util.curl').POST -- local function get_field(word) -- -- local to = isEn and 'zh-' -- local len = #word -- local curtime = tostring(os.time()) -- local input = len > 20 and -- word:sub(1, 10) .. len .. word:sub(-10) or word -- -- sign=sha256(应用ID+input+salt+curtime+应用密钥); -- local hash = appid .. input .. salt .. curtime .. appPasswd -- local sign = vim.fn.sha256(hash) -- return { -- q = word, -- from = 'auto', -- to = 'zh-CHS', -- signType = 'v3', -- appKey = appid, -- salt = salt, -- curtime = curtime, -- sign = sign, -- } -- end -- return function(word) -- -- return result -- -- local field = get_field(word) -- -- local output = post(uri, { -- -- body = field, -- -- }) -- -- if output.exit == 0 and output.status == 200 then -- -- local result = vim.fn.json_decode(output.body) -- -- if result and result.errorCode == 0 then -- -- --- TODO : -- -- end -- -- end -- end