mirror of
https://github.com/Jerryplusy/rc-plugin.git
synced 2025-10-14 08:09:19 +00:00
73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
|
||
|
||
import fs from "fs";
|
||
import axios from 'axios'
|
||
|
||
const DOWNLOAD_PATH = "./data/";
|
||
const GPTSOVITS_HOST = "https://cn-sy-bgp-plustmp1.natfrp.cloud:49918"
|
||
|
||
const voiceList = Object.freeze([
|
||
"雷军",
|
||
])
|
||
|
||
export class example extends plugin {
|
||
constructor () {
|
||
super({
|
||
name: '语音包',
|
||
dsc: '语音包',
|
||
// 匹配的消息类型,参考https://oicqjs.github.io/oicq/#events
|
||
event: 'message',
|
||
priority: 5000,
|
||
rule: [
|
||
{
|
||
reg: `^(${voiceList.join('|')})说(.*)`,
|
||
fnc: 'voicePack'
|
||
},
|
||
{
|
||
reg: "^语音列表$",
|
||
fnc: 'voiceList'
|
||
}
|
||
]
|
||
})
|
||
}
|
||
|
||
async voicePack(e) {
|
||
const parts = e.msg.trim()
|
||
const part1 = parts.split("说", 1)[0];
|
||
const part2 = parts.substring(parts.indexOf("说") + 1).replaceAll(" ", ",");
|
||
|
||
// Data payload
|
||
const data = {
|
||
text: part2,
|
||
text_language: "zh"
|
||
};
|
||
|
||
// Make the POST request
|
||
axios.post(GPTSOVITS_HOST, data, { responseType: 'arraybuffer' })
|
||
.then(response => {
|
||
if (response.status === 400) {
|
||
throw new Error(`请求GPTSoVITS出现错误: ${response.data.message}`);
|
||
}
|
||
|
||
// Write the content to a file
|
||
fs.writeFile(DOWNLOAD_PATH + "voicePack.wav", response.data, (err) => {
|
||
if (err) throw err;
|
||
e.reply(segment.record(fs.readFileSync(DOWNLOAD_PATH + "voicePack.wav")));
|
||
});
|
||
})
|
||
.catch(error => {
|
||
console.error('Error:', error.message);
|
||
});
|
||
return true
|
||
}
|
||
|
||
async voiceList(e) {
|
||
e.reply(Bot.makeForwardMsg([{
|
||
message: { type: "text", text: voiceList.join("\n") },
|
||
nickname: e.sender.card || e.user_id,
|
||
user_id: e.user_id,
|
||
}]));
|
||
return true
|
||
}
|
||
}
|