@@ -16,52 +16,34 @@ import (
16
16
"github.com/haruno-bot/haruno/coolq"
17
17
)
18
18
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
-
25
19
// 没有问题的回答
26
20
var unReply = coolq .NewTextSection ("我听不清,你在说什么呀?" )
27
21
28
22
// Turing 结合图灵机器人api的插件
29
23
type Turing struct {
30
24
coolq.Plugin
25
+ name string
26
+ token string
27
+ version string
28
+ groupNums map [int64 ]bool
29
+ client * clients.HTTPClient
31
30
}
32
31
33
32
// 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 )
53
35
}
54
36
55
37
// Filters 过滤酷Q上报事件用,利于提升插件性能
56
- func (_plugin Turing ) Filters () map [string ]coolq.Filter {
38
+ func (_plugin * Turing ) Filters () map [string ]coolq.Filter {
57
39
filters := make (map [string ]coolq.Filter )
58
40
filters ["turing" ] = func (event * coolq.CQEvent ) bool {
59
41
if event .PostType != "message" ||
60
42
event .MessageType != "group" ||
61
43
event .SubType != "normal" {
62
44
return false
63
45
}
64
- if ! groupNums [event .GroupID ] {
46
+ if ! _plugin . groupNums [event .GroupID ] {
65
47
return false
66
48
}
67
49
msg := new (coolq.Message )
@@ -84,7 +66,7 @@ func (_plugin Turing) Filters() map[string]coolq.Filter {
84
66
}
85
67
86
68
// Handlers 处理酷Q上报事件用
87
- func (_plugin Turing ) Handlers () map [string ]coolq.Handler {
69
+ func (_plugin * Turing ) Handlers () map [string ]coolq.Handler {
88
70
handlers := make (map [string ]coolq.Handler )
89
71
handlers ["turing" ] = func (event * coolq.CQEvent ) {
90
72
msg := new (coolq.Message )
@@ -108,8 +90,8 @@ func (_plugin Turing) Handlers() map[string]coolq.Handler {
108
90
reply = coolq .AddSection (reply , replto )
109
91
110
92
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 )
113
95
if err != nil {
114
96
logger .Field (_plugin .Name ()).Error (err .Error ())
115
97
return
@@ -141,14 +123,29 @@ func (_plugin Turing) Handlers() map[string]coolq.Handler {
141
123
}
142
124
143
125
// 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
146
143
}
147
144
148
145
// Loaded 加载完成
149
- func (_plugin Turing ) Loaded () {
146
+ func (_plugin * Turing ) Loaded () {
150
147
logger .Field (_plugin .Name ()).Info ("已成功加载" )
151
148
}
152
149
153
150
// Instance 实体
154
- var Instance = Turing {}
151
+ var Instance = & Turing {}
0 commit comments