koishi-plugin-tmp-bot
Version:
欧洲卡车模拟2 TMP查询插件,不会部署的可以直接使用此机器人->QQ:3523283907
31 lines (30 loc) • 1.36 kB
JavaScript
const md5 = require('js-md5');
const translateCache = require('../database/translateCache');
const TRANSLATE_API = 'https://fanyi-api.baidu.com/api/trans/vip/translate';
module.exports = async (ctx, cfg, content, cache = true) => {
// 没有开启百度翻译功能,直接返回文本
if (!cfg.baiduTranslateEnable) {
return content;
}
// 如果开启了缓存,尝试从缓存中查询翻译
if (cfg.baiduTranslateCacheEnable && cache) {
let translateContent = await translateCache.getTranslate(ctx.database, md5(content));
if (translateContent) {
return translateContent;
}
}
// 创建请求秘钥
let randomInt = Math.floor(Math.random() * 10000);
let sign = md5(cfg.baiduTranslateAppId + content + randomInt + cfg.baiduTranslateKey);
// 调用请求
let result = await ctx.http.get(`${TRANSLATE_API}?q=${encodeURI(content)}&from=auto&to=zh&appid=${cfg.baiduTranslateAppId}&salt=${randomInt}&sign=${sign}`);
// 如果翻译失败,直接返回内容
if (result.error_code) {
return content;
}
// 如果开启了缓存,将翻译内容缓存到数据库
if (cfg.baiduTranslateCacheEnable && cache) {
translateCache.save(ctx.database, md5(content), content, result.trans_result[0].dst);
}
return result.trans_result[0].dst;
};