81 lines
2.7 KiB
JavaScript
81 lines
2.7 KiB
JavaScript
|
|
// 之秋秋机器人 - webhook处理器
|
|||
|
|
const { queryDeveloper, queryModule, queryRecentSyslogs, queryStats } = require('./utils/queryApi');
|
|||
|
|
|
|||
|
|
module.exports = async (req, res) => {
|
|||
|
|
try {
|
|||
|
|
const { text, senderStaffId, conversationId } = req.body;
|
|||
|
|
|
|||
|
|
if (text && text.content) {
|
|||
|
|
// 先处理查询指令
|
|||
|
|
const command = text.content.trim();
|
|||
|
|
let reply = null;
|
|||
|
|
|
|||
|
|
// 查询指令判断
|
|||
|
|
if (command.startsWith('查DEV-')) {
|
|||
|
|
const match = command.match(/DEV-\d+/);
|
|||
|
|
if (match) {
|
|||
|
|
const result = await queryDeveloper(match[0]);
|
|||
|
|
reply = result.message;
|
|||
|
|
} else {
|
|||
|
|
reply = '❌ 格式不对,试试:查DEV-004';
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (command.startsWith('查M-')) {
|
|||
|
|
const match = command.match(/M-[A-Z]+/);
|
|||
|
|
if (match) {
|
|||
|
|
const result = await queryModule(match[0]);
|
|||
|
|
reply = result.message;
|
|||
|
|
} else {
|
|||
|
|
reply = '❌ 格式不对,试试:查M-DINGTALK';
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (command === '查最近') {
|
|||
|
|
const result = await queryRecentSyslogs(5);
|
|||
|
|
reply = result.message;
|
|||
|
|
}
|
|||
|
|
else if (command === '查全部' || command === '全局统计') {
|
|||
|
|
const result = await queryStats();
|
|||
|
|
reply = result.message;
|
|||
|
|
}
|
|||
|
|
else if (command === '帮助' || command === 'help') {
|
|||
|
|
reply = `📚 秋秋机器人指令帮助:
|
|||
|
|
• 查DEV-004 - 查询开发者状态
|
|||
|
|
• 查M-DINGTALK - 查询模块进度
|
|||
|
|
• 查最近 - 查看最近5条SYSLOG
|
|||
|
|
• 查全部 / 全局统计 - 查看全局统计
|
|||
|
|
• 帮助 - 显示本帮助`;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 如果不是查询指令,才交给AI处理
|
|||
|
|
if (!reply) {
|
|||
|
|
// 这里调用原来的AI处理函数
|
|||
|
|
const { processWithAI } = require('./ai');
|
|||
|
|
reply = await processWithAI(text.content);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 返回回复
|
|||
|
|
res.json({
|
|||
|
|
msgtype: 'text',
|
|||
|
|
text: {
|
|||
|
|
content: reply
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
res.json({
|
|||
|
|
msgtype: 'text',
|
|||
|
|
text: {
|
|||
|
|
content: '收到'
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('webhook处理错误:', error);
|
|||
|
|
res.json({
|
|||
|
|
msgtype: 'text',
|
|||
|
|
text: {
|
|||
|
|
content: '❌ 服务器开小差了,稍后再试'
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
};
|