mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 21:37:11 +00:00
68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
import plugin from '../../../lib/plugins/plugin.js'
|
||
import { Config } from '../utils/config.js'
|
||
import { generateHello } from '../utils/randomMessage.js'
|
||
import { segment } from 'oicq'
|
||
import { generateAudio } from '../utils/tts.js'
|
||
|
||
export class Entertainment extends plugin {
|
||
constructor (e) {
|
||
super({
|
||
name: 'ChatGPT-Plugin娱乐小功能',
|
||
dsc: 'ChatGPT-Plugin娱乐小功能',
|
||
event: 'message',
|
||
priority: 500,
|
||
task: [
|
||
{
|
||
// 每半小时
|
||
cron: '*/30 * * * *',
|
||
name: 'ChatGPT主动随机说话',
|
||
fnc: 'sendRandomMessage'
|
||
}
|
||
],
|
||
rule: [
|
||
{
|
||
reg: '^#(chatgpt|ChatGPT)打招呼',
|
||
fnc: 'sendMessage'
|
||
}
|
||
]
|
||
})
|
||
}
|
||
|
||
async sendMessage (e) {
|
||
let groupId = e.msg.replace(/^#(chatgpt|ChatGPT)打招呼/, '')
|
||
groupId = parseInt(groupId)
|
||
let message = await generateHello()
|
||
let sendable = message
|
||
logger.info(`打招呼给群聊${groupId}:` + message)
|
||
if (Config.defaultUseTTS) {
|
||
let audio = await generateAudio(message, '随机')
|
||
console.log(audio)
|
||
sendable = segment.record(audio)
|
||
}
|
||
if (!groupId) {
|
||
await e.reply(sendable)
|
||
} else {
|
||
await Bot.sendGroupMsg(groupId, sendable)
|
||
}
|
||
}
|
||
|
||
async sendRandomMessage () {
|
||
let toSend = Config.initiativeChatGroups || []
|
||
for (let i = 0; i < toSend.length; i++) {
|
||
let groupId = parseInt(toSend[i])
|
||
if (Bot.gl[groupId]) {
|
||
if (Math.floor(Math.random() * 100) < 10) {
|
||
let message = await generateHello()
|
||
if (Config.defaultUseTTS) {
|
||
let audio = await generateAudio(message, '随机')
|
||
await Bot.sendGroupMsg(groupId, segment.record(audio))
|
||
} else {
|
||
await Bot.sendGroupMsg(groupId, message)
|
||
}
|
||
}
|
||
} else {
|
||
logger.warn('机器人不在要发送的群组里,忽略群' + groupId)
|
||
}
|
||
}
|
||
}
|
||
}
|