fix: more lsp info comment and fix backend opts error
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
---@class Baidu: TransBackend
|
||||
---@field uri string api uri
|
||||
---@field salt string
|
||||
---@field app_id string
|
||||
---@field app_passwd string
|
||||
---@field disable boolean
|
||||
local M = {
|
||||
uri = 'https://fanyi-api.baidu.com/api/trans/vip/translate',
|
||||
salt = tostring(math.random(bit.lshift(1, 15))),
|
||||
@ -6,6 +12,19 @@ local M = {
|
||||
|
||||
local Trans = require('Trans')
|
||||
|
||||
|
||||
---@class BaiduQuery
|
||||
---@field q string
|
||||
---@field from string
|
||||
---@field to string
|
||||
---@field appid string
|
||||
---@field salt string
|
||||
---@field sign string
|
||||
|
||||
|
||||
---Get content for query
|
||||
---@param data TransData
|
||||
---@return BaiduQuery
|
||||
function M.get_content(data)
|
||||
local tmp = M.app_id .. data.str .. M.salt .. M.app_passwd
|
||||
local sign = Trans.util.md5.sumhexa(tmp)
|
||||
@ -27,7 +46,9 @@ end
|
||||
-- status = 200
|
||||
-- }
|
||||
|
||||
|
||||
---@overload fun(TransData): TransResult
|
||||
---Query Using Baidu API
|
||||
---@param data TransData
|
||||
function M.query(data)
|
||||
if M.disable then
|
||||
data.result.baidu = false
|
||||
@ -37,22 +58,23 @@ function M.query(data)
|
||||
|
||||
local handle = function(res)
|
||||
local status, body = pcall(vim.json.decode, res.body)
|
||||
if status and body then
|
||||
local result = body.trans_result
|
||||
if result then
|
||||
-- TEST :whether multi result
|
||||
assert(#result == 1)
|
||||
result = result[1]
|
||||
data.result.baidu = {
|
||||
['title'] = result.src,
|
||||
[data.from == 'en' and 'translation' or 'definition'] = result.dst,
|
||||
}
|
||||
return
|
||||
end
|
||||
if not status or not body then
|
||||
data.result.baidu = false
|
||||
data.trace = res
|
||||
return
|
||||
end
|
||||
|
||||
data.result.baidu = false
|
||||
data.trace = res
|
||||
|
||||
local result = body.trans_result
|
||||
if result then
|
||||
-- TEST :whether multi result
|
||||
assert(#result == 1)
|
||||
result = result[1]
|
||||
data.result.baidu = {
|
||||
['title'] = result.src,
|
||||
[data.from == 'en' and 'translation' or 'definition'] = result.dst,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -62,6 +84,8 @@ function M.query(data)
|
||||
})
|
||||
end
|
||||
|
||||
---@class TransBackend
|
||||
---@field baidu Baidu
|
||||
return M
|
||||
|
||||
-- -- NOTE :free tts:
|
||||
|
@ -1,8 +1,10 @@
|
||||
---@class Offline: TransBackend
|
||||
local M = {
|
||||
no_wait = true,
|
||||
name = 'offline',
|
||||
}
|
||||
|
||||
|
||||
local db = require 'sqlite.db'
|
||||
vim.api.nvim_create_autocmd('VimLeavePre', {
|
||||
once = true,
|
||||
@ -13,6 +15,10 @@ vim.api.nvim_create_autocmd('VimLeavePre', {
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
---@param data any
|
||||
---@return any
|
||||
---@overload fun(TransData): TransResult
|
||||
function M.query(data)
|
||||
if data.is_word == false or data.from == 'zh' then return end
|
||||
|
||||
@ -48,6 +54,7 @@ local function exist(str)
|
||||
return str and str ~= ''
|
||||
end
|
||||
|
||||
---@type (fun(res):any)[]
|
||||
local formatter = {
|
||||
title = function(res)
|
||||
local title = {
|
||||
@ -152,6 +159,9 @@ local formatter = {
|
||||
end,
|
||||
}
|
||||
|
||||
---Formater for TransResul
|
||||
---@param res TransResult
|
||||
---@return TransResult
|
||||
function M.formatter(res)
|
||||
for field, func in pairs(formatter) do
|
||||
res[field] = func(res)
|
||||
@ -160,4 +170,5 @@ function M.formatter(res)
|
||||
return res
|
||||
end
|
||||
|
||||
|
||||
return M
|
||||
|
Reference in New Issue
Block a user