koishi-plugin-tmp-bot
Version:
欧洲卡车模拟2 TMP查询插件,不会部署的可以直接使用此机器人->QQ:3523283907
59 lines (58 loc) • 1.71 kB
JavaScript
const truckyAppApi = require('../../api/truckyAppApi');
const baiduTranslate = require('../../util/baiduTranslate');
/**
* 服务器别名
*/
const serverNameAlias = {
's1': 'sim1',
's2': 'sim2',
'p': 'eupromods1',
'a': 'arc1'
};
/**
* 路况程度转中文
*/
const severityToZh = {
'Fluid': '🟢畅通',
'Moderate': '🟠正常',
'Congested': '🔴缓慢',
'Heavy': '🟣拥堵'
};
/**
* 位置类型转中文
*/
const typeToZh = {
'City': '城市',
'Road': '公路',
'Intersection': '十字路口'
};
/**
* 查询路况
*/
module.exports = async (ctx, cfg, serverName) => {
// 转换服务器别名
let serverQueryName = serverNameAlias[serverName];
if (!serverQueryName) {
return '请输入正确的服务器名称 (s1, s2, p, a)';
}
let trafficData = await truckyAppApi.trafficTop(ctx.http, serverQueryName);
if (trafficData.error) {
return '查询路况信息失败';
}
// 构建消息
let message = '';
for (const traffic of trafficData.data) {
// 如果已有内容,换行
if (message) {
message += '\n\n';
}
message += await baiduTranslate(ctx, cfg, traffic.country);
message += ' - ';
let name = traffic.name.substring(0, traffic.name.lastIndexOf('(') - 1);
let type = traffic.name.substring(traffic.name.lastIndexOf('(') + 1, traffic.name.lastIndexOf(')'));
message += await baiduTranslate(ctx, cfg, name) + ` (${typeToZh[type] || type})`;
message += '\n路况: ' + (severityToZh[traffic.newSeverity] || traffic.color);
message += ' | 人数: ' + traffic.players;
}
return message;
};