-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.js
66 lines (64 loc) · 1.62 KB
/
bot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const { Bot } = require('mirai-js')
const schedule = require("node-schedule")
const { masterQQ } = require('./config.json')
const { now, sleep } = require('./utils')
const Gueue=require("./gueue.js")
const gueues=[]
const adminGueue=new Gueue(50,-1)
adminGueue.start()
const bot = new Bot()
const status = {
on: true
}
const completeMessages = []
const sendGroupMessage = async (group, message, id) => {
const admin = masterQQ.includes(id)
const action = async () =>bot.sendMessage({ group, message })
action.group = group
if (admin) {
adminGueue.push(action)
} else if(status.on){
const key = `${group}:${id}`
let gueue=gueues.find(({id})=>id==key)
if(!gueue){
gueue=new Gueue(1000,10,key)
gueue.start()
gueues.push(gueue)
}
gueue.push(action)
}
}
const sendGroupNudge = async (group, target, id) => {
const admin = masterQQ.includes(id)
const action = async () =>bot.sendNudge({ group, target })
action.group = group
if (admin) {
adminGueue.push(action)
} else if(status.on){
const key = `${group}:${id}`
let gueue=gueues.find(({id})=>id==key)
if(!gueue){
gueue=new Gueue(1000,10,key)
gueue.start()
gueues.push(gueue)
}
gueue.push(action)
}
}
const recaMessage = async (messageId) => {
await bot.recall({ messageId })
}
const sendMessage = (id, message) => {
bot.sendMessage({
friend: id,
message
})
}
module.exports = {
bot,
sendGroupMessage,
sendGroupNudge,
sendMessage,
recaMessage,
status,
}