This repository has been archived by the owner on Jun 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathmain.go
103 lines (95 loc) · 2.51 KB
/
main.go
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package main
import (
"OPQBot-QQGroupManager/BanWord"
_ "OPQBot-QQGroupManager/Bili"
"OPQBot-QQGroupManager/Config"
"OPQBot-QQGroupManager/Core"
"OPQBot-QQGroupManager/GroupManager"
"OPQBot-QQGroupManager/androidDns"
_ "OPQBot-QQGroupManager/genAndYiqin"
_ "OPQBot-QQGroupManager/githubManager"
_ "OPQBot-QQGroupManager/kiss"
_ "OPQBot-QQGroupManager/setu"
_ "OPQBot-QQGroupManager/taobao"
_ "OPQBot-QQGroupManager/wordCloud"
"bytes"
_ "embed"
"fmt"
"math/rand"
"net/http"
_ "net/http/pprof"
"strings"
"time"
"github.com/dimiro1/banner"
"github.com/mattn/go-colorable"
"github.com/sirupsen/logrus"
//_ "OPQBot-QQGroupManager/steam"
"OPQBot-QQGroupManager/utils"
_ "github.com/go-playground/webhooks/v6/github"
"github.com/mcoo/OPQBot"
)
//go:embed logo.txt
var logo string
var (
version = "unknown"
date = "none"
log *logrus.Logger
)
func init() {
rand.Seed(time.Now().Unix())
}
func main() {
isEnabled := true
isColorEnabled := true
banner.Init(colorable.NewColorableStdout(), isEnabled, isColorEnabled, bytes.NewBufferString(strings.ReplaceAll(logo, "{{ .version }}", version)))
log = Core.GetLog()
if Config.CoreConfig.LogLevel != "" {
switch Config.CoreConfig.LogLevel {
case "info":
log.SetLevel(logrus.InfoLevel)
case "debug":
log.SetLevel(logrus.DebugLevel)
log.SetReportCaller(true)
case "warn":
log.SetLevel(logrus.WarnLevel)
case "error":
log.SetLevel(logrus.ErrorLevel)
}
}
if Config.CoreConfig.Debug {
log.Warn("注意当前处于DEBUG模式,会开放25569端口,如果你不清楚请关闭DEBUG,因为这样可能泄漏你的信息!😥")
go func() {
ip := ":25569"
if err := http.ListenAndServe(ip, nil); err != nil {
fmt.Printf("start pprof failed on %s\n", ip)
}
}()
}
log.Println("QQ Group Manager -️" + version + " 编译时间 " + date)
androidDns.SetDns()
go CheckUpdate()
b := Core.Bot{Modules: map[string]*Core.Module{}, BotManager: OPQBot.NewBotManager(Config.CoreConfig.OPQBotConfig.QQ, Config.CoreConfig.OPQBotConfig.Url)}
_, err := b.AddEvent(OPQBot.EventNameOnDisconnected, func() {
log.Println("断开服务器")
})
if err != nil {
log.Println(err)
}
b.BotCronManager = utils.NewBotCronManager()
b.BotCronManager.Start()
b.DB = Config.DB
_, err = b.AddEvent(OPQBot.EventNameOnConnected, func() {
log.Println("连接服务器成功")
})
if err != nil {
log.Println(err)
}
_ = BanWord.Hook(&b)
Core.InitModule(&b)
err = b.Start()
if err != nil {
log.Error(err)
}
GroupManager.Start <- struct{}{}
b.Wait()
}