@@ -10,6 +10,7 @@ import (
10
10
11
11
func Default (ctx context.Context ) openwechat.MessageHandler {
12
12
self := ctx .Value (model .SelfKey ).(* openwechat.Self )
13
+ config := ctx .Value (model .ConfigKey ).(* model.Config )
13
14
dispatcher := openwechat .NewMessageMatchDispatcher ()
14
15
15
16
dispatcher .OnText (func (msgCtx * openwechat.MessageContext ) {
@@ -18,62 +19,58 @@ func Default(ctx context.Context) openwechat.MessageHandler {
18
19
if len (msg .Content ) <= 4 {
19
20
return
20
21
}
21
- if strings .Index (msg .Content , " " ) == 0 {
22
22
23
- }
24
- if msg . Content [: 4 ] == ":bot" {
23
+ if strings . Index ( msg . Content , config . OpenAI . Prefix ) == 0 {
24
+ log . Println ( "found message match: " + msg . Content )
25
25
query := msg .Content [4 :]
26
-
27
26
response , err := model .ChatCompletion (ctx , model .MakeMessage (query ))
28
27
if err != nil {
29
28
log .Println ("ChatCompletion error: " + err .Error ())
30
29
return
31
30
}
32
- log .Println ("回复消息: " + response )
33
31
34
32
receiver , err := msg .Receiver ()
35
33
if err != nil {
36
- log .Println ("Receiver error : " + err .Error ())
34
+ log .Println ("get receiver failed : " + err .Error ())
37
35
return
38
36
}
39
37
log .Printf ("receiver: %v, isSendBySelf: %v" , receiver , msg .IsSendBySelf ())
40
38
sender , err := msg .Sender ()
41
39
if err != nil {
42
- log .Println ("Sender error : " + err .Error ())
40
+ log .Println ("get sender failed : " + err .Error ())
43
41
return
44
42
}
45
43
log .Printf ("sender: %v, isSendBySelf: %v" , sender , msg .IsSendBySelf ())
46
44
45
+ // 和文件传输助手的消息
47
46
if receiver != nil && receiver .UserName == "filehelper" {
48
- log .Println ("Reply to filehelper" )
49
47
fh := self .FileHelper ()
50
48
_ , err := self .SendTextToFriend (fh , response )
51
49
if err != nil {
52
- log .Println ("SendTextToFriend error : " + err .Error ())
50
+ log .Println ("reply to filehelper failed : " + err .Error ())
53
51
return
54
52
}
55
53
} else if receiver != nil && msg .IsSendBySelf () {
56
- log .Println ("Is send by self, isGroup:" , receiver .IsGroup (), ", isSelf:" , receiver .IsSelf (), ", isFriend:" , receiver .IsFriend ())
57
54
if receiver .IsGroup () {
58
55
group , _ := receiver .AsGroup ()
59
- log .Println ("Reply to group" )
56
+ log .Println ("replying to group" , group . NickName )
60
57
_ , err := self .SendTextToGroup (group , response )
61
58
if err != nil {
62
- log .Println ("SendTextToGroup error : " + err .Error ())
59
+ log .Println ("SendTextToGroup failed : " + err .Error ())
63
60
}
64
61
} else {
65
62
user , _ := receiver .AsFriend ()
66
- log .Println ("Reply to user" )
63
+ log .Println ("replying to user" , user . NickName )
67
64
_ , err := self .SendTextToFriend (user , response )
68
65
if err != nil {
69
- log .Println ("SendTextToFriend error : " + err .Error ())
66
+ log .Println ("SendTextToFriend failed : " + err .Error ())
70
67
}
71
68
}
72
69
} else {
73
- log .Println ("Fallback reply to message " )
70
+ log .Println ("defaulting to replyText " )
74
71
_ , err := msgCtx .ReplyText (response )
75
72
if err != nil {
76
- log .Println ("ReplyText error : " + err .Error ())
73
+ log .Println ("ReplyText failed : " + err .Error ())
77
74
}
78
75
}
79
76
}
0 commit comments