mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 21:37:11 +00:00
feat: 主动聊天功能
This commit is contained in:
parent
5cbd2cad15
commit
7a320bc772
4 changed files with 114 additions and 2 deletions
68
apps/entertainment.js
Normal file
68
apps/entertainment.js
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue