diff --git a/core/im.go b/core/im.go index 02a116c..933fffb 100644 --- a/core/im.go +++ b/core/im.go @@ -22,6 +22,7 @@ type Sender interface { GetAllMatch() [][]string Get(...int) string GetContent() string + SetContent(string) IsAdmin() bool IsMedia() bool Reply(...interface{}) (int, error) @@ -49,6 +50,7 @@ type Faker struct { Message string Type string UserID interface{} + ChatID interface{} BaseSender } @@ -61,7 +63,7 @@ func (sender *Faker) GetUserID() interface{} { } func (sender *Faker) GetChatID() interface{} { - return 0 + return sender.ChatID } func (sender *Faker) GetImType() string { @@ -135,6 +137,7 @@ type BaseSender struct { matches [][]string goon bool child Sender + Content string } func (sender *BaseSender) SetMatch(ss []string) { @@ -144,6 +147,10 @@ func (sender *BaseSender) SetAllMatch(ss [][]string) { sender.matches = ss } +func (sender *BaseSender) SetContent(content string) { + sender.Content = content +} + func (sender *BaseSender) GetMatch() []string { return sender.matches[0] } diff --git a/im/qq/sender.go b/im/qq/sender.go index 330dd47..2dfd54e 100644 --- a/im/qq/sender.go +++ b/im/qq/sender.go @@ -21,6 +21,9 @@ type Sender struct { } func (sender *Sender) GetContent() string { + if sender.Content != "" { + return sender.Content + } text := "" switch sender.Message.(type) { case *message.PrivateMessage: diff --git a/im/tg/tg.go b/im/tg/tg.go index ab075c6..16b0cc7 100644 --- a/im/tg/tg.go +++ b/im/tg/tg.go @@ -172,6 +172,9 @@ func init() { } func (sender *Sender) GetContent() string { + if sender.Content != "" { + return sender.Content + } return sender.Message.Text } diff --git a/im/wx/init.go b/im/wx/init.go index a85f0d7..bb5e712 100644 --- a/im/wx/init.go +++ b/im/wx/init.go @@ -208,6 +208,9 @@ type JsonMsg struct { } func (sender *Sender) GetContent() string { + if sender.Content != "" { + return sender.Content + } return sender.value.Msg } func (sender *Sender) GetUserID() interface{} { diff --git a/im/wxmp/init.go b/im/wxmp/init.go index 96e47f7..fbe182a 100644 --- a/im/wxmp/init.go +++ b/im/wxmp/init.go @@ -114,6 +114,9 @@ type Sender struct { } func (sender *Sender) GetContent() string { + if sender.Content != "" { + return sender.Content + } return sender.Message }