Skip to content

Commit 7fa489d

Browse files
author
mzi
committed
fix: remove global vars
1 parent a1c302b commit 7fa489d

File tree

1 file changed

+31
-34
lines changed

1 file changed

+31
-34
lines changed

turing.go

+31-34
Original file line numberDiff line numberDiff line change
@@ -16,52 +16,34 @@ import (
1616
"github.com/haruno-bot/haruno/coolq"
1717
)
1818

19-
var groupNums = make(map[int64]bool)
20-
var token string
21-
var client = clients.NewHTTPClient()
22-
var name string
23-
var version string
24-
2519
// 没有问题的回答
2620
var unReply = coolq.NewTextSection("我听不清,你在说什么呀?")
2721

2822
// Turing 结合图灵机器人api的插件
2923
type Turing struct {
3024
coolq.Plugin
25+
name string
26+
token string
27+
version string
28+
groupNums map[int64]bool
29+
client *clients.HTTPClient
3130
}
3231

3332
// Name 插件名字+版本号
34-
func (_plugin Turing) Name() string {
35-
return fmt.Sprintf("%s@%s", name, version)
36-
}
37-
38-
func (_plugin *Turing) loadConfig() error {
39-
cfg := new(Config)
40-
toml.DecodeFile("cofig.toml", cfg)
41-
_, err := toml.DecodeFile("config.toml", cfg)
42-
if err != nil {
43-
return err
44-
}
45-
pcfg := cfg.Turing
46-
name = pcfg.Name
47-
version = pcfg.Version
48-
token = pcfg.Token
49-
for _, groupID := range pcfg.GroupNums {
50-
groupNums[groupID] = true
51-
}
52-
return nil
33+
func (_plugin *Turing) Name() string {
34+
return fmt.Sprintf("%s@%s", _plugin.name, _plugin.version)
5335
}
5436

5537
// Filters 过滤酷Q上报事件用,利于提升插件性能
56-
func (_plugin Turing) Filters() map[string]coolq.Filter {
38+
func (_plugin *Turing) Filters() map[string]coolq.Filter {
5739
filters := make(map[string]coolq.Filter)
5840
filters["turing"] = func(event *coolq.CQEvent) bool {
5941
if event.PostType != "message" ||
6042
event.MessageType != "group" ||
6143
event.SubType != "normal" {
6244
return false
6345
}
64-
if !groupNums[event.GroupID] {
46+
if !_plugin.groupNums[event.GroupID] {
6547
return false
6648
}
6749
msg := new(coolq.Message)
@@ -84,7 +66,7 @@ func (_plugin Turing) Filters() map[string]coolq.Filter {
8466
}
8567

8668
// Handlers 处理酷Q上报事件用
87-
func (_plugin Turing) Handlers() map[string]coolq.Handler {
69+
func (_plugin *Turing) Handlers() map[string]coolq.Handler {
8870
handlers := make(map[string]coolq.Handler)
8971
handlers["turing"] = func(event *coolq.CQEvent) {
9072
msg := new(coolq.Message)
@@ -108,8 +90,8 @@ func (_plugin Turing) Handlers() map[string]coolq.Handler {
10890
reply = coolq.AddSection(reply, replto)
10991

11092
if len(question) > 0 {
111-
qsURL := fmt.Sprintf("http://www.tuling123.com/openapi/api?key=%s&info=%s&userid=%d", token, url.QueryEscape(question), event.UserID)
112-
res, err := client.Get(qsURL)
93+
qsURL := fmt.Sprintf("http://www.tuling123.com/openapi/api?key=%s&info=%s&userid=%d", _plugin.token, url.QueryEscape(question), event.UserID)
94+
res, err := _plugin.client.Get(qsURL)
11395
if err != nil {
11496
logger.Field(_plugin.Name()).Error(err.Error())
11597
return
@@ -141,14 +123,29 @@ func (_plugin Turing) Handlers() map[string]coolq.Handler {
141123
}
142124

143125
// Load 加载插件
144-
func (_plugin Turing) Load() error {
145-
return _plugin.loadConfig()
126+
func (_plugin *Turing) Load() error {
127+
cfg := new(Config)
128+
toml.DecodeFile("cofig.toml", cfg)
129+
_, err := toml.DecodeFile("config.toml", cfg)
130+
if err != nil {
131+
return err
132+
}
133+
pcfg := cfg.Turing
134+
_plugin.name = pcfg.Name
135+
_plugin.version = pcfg.Version
136+
_plugin.token = pcfg.Token
137+
_plugin.groupNums = make(map[int64]bool)
138+
_plugin.client = clients.NewHTTPClient()
139+
for _, groupID := range pcfg.GroupNums {
140+
_plugin.groupNums[groupID] = true
141+
}
142+
return nil
146143
}
147144

148145
// Loaded 加载完成
149-
func (_plugin Turing) Loaded() {
146+
func (_plugin *Turing) Loaded() {
150147
logger.Field(_plugin.Name()).Info("已成功加载")
151148
}
152149

153150
// Instance 实体
154-
var Instance = Turing{}
151+
var Instance = &Turing{}

0 commit comments

Comments
 (0)