This commit is contained in:
cdle
2021-09-17 10:18:08 +08:00
parent aa2cacd8f9
commit 22783733c7
4 changed files with 55 additions and 12 deletions
+13
View File
@@ -1,9 +1,22 @@
package core
var Pushs = map[string]func(int, string){}
var GroupPushs = map[string]func(int, int, string){}
func Push(class string, uid int, content string) {
if push, ok := Pushs[class]; ok {
push(uid, content)
}
}
type Chat struct {
Class string
ID int
UserID int
}
func (ct *Chat) Push(content string) {
if push, ok := GroupPushs[ct.Class]; ok {
push(ct.ID, ct.UserID, content)
}
}
+3
View File
@@ -218,4 +218,7 @@ func init() {
core.Pushs["qq"] = func(i int, s string) {
bot.SendPrivateMessage(int64(i), int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&message.TextElement{Content: s}}})
}
core.GroupPushs["qq"] = func(i, j int, s string) {
bot.SendGroupMessage(int64(i), &message.SendingMessage{Elements: []message.IMessageElement{&message.AtElement{Target: int64(j)}, &message.TextElement{Content: s}}})
}
}
+22 -11
View File
@@ -9,22 +9,13 @@ import (
"github.com/Mrs4s/MiraiGo/message"
"github.com/Mrs4s/go-cqhttp/coolq"
"github.com/cdle/sillyGirl/core"
)
type Sender struct {
Message interface{}
matches [][]string
}
func (sender *Sender) RecallGroupMessage() error {
switch sender.Message.(type) {
case *message.GroupMessage:
m := sender.Message.(*message.GroupMessage)
if err := bot.Client.RecallGroupMessage(m.GroupCode, m.Id, m.InternalId); err != nil {
return err
}
}
return nil
chat *core.Chat
}
func (sender *Sender) GetContent() string {
@@ -148,6 +139,10 @@ func (sender *Sender) IsMedia() bool {
}
func (sender *Sender) Reply(msg interface{}) error {
if sender.chat != nil {
sender.chat.Push(msg.(string))
return nil
}
switch sender.Message.(type) {
case *message.PrivateMessage:
m := sender.Message.(*message.PrivateMessage)
@@ -186,3 +181,19 @@ func (sender *Sender) Reply(msg interface{}) error {
}
return nil
}
func (sender *Sender) RecallGroupMessage() error {
switch sender.Message.(type) {
case *message.GroupMessage:
sender.chat = &core.Chat{
Class: sender.GetImType(),
ID: sender.GetChatID(),
UserID: sender.GetUserID(),
}
m := sender.Message.(*message.GroupMessage)
if err := bot.Client.RecallGroupMessage(m.GroupCode, m.Id, m.InternalId); err != nil {
return err
}
}
return nil
}
+17 -1
View File
@@ -14,6 +14,7 @@ import (
type Sender struct {
Message *tb.Message
matches [][]string
chat *core.Chat
}
var tg = core.NewBucket("tg")
@@ -43,10 +44,12 @@ func init() {
core.Pushs["tg"] = func(i int, s string) {
b.Send(&tb.User{ID: i}, s)
}
core.GroupPushs["tg"] = func(i, j int, s string) {
b.Send(&tb.Chat{ID: int64(i)}, s)
}
b.Handle(tb.OnText, Handler)
logs.Info("监听telegram机器人")
b.Start()
}
func (sender *Sender) GetContent() string {
@@ -128,6 +131,10 @@ func (sender *Sender) IsMedia() bool {
}
func (sender *Sender) Reply(rt interface{}) error {
if sender.chat != nil {
sender.chat.Push(rt.(string))
return nil
}
var r tb.Recipient
var options = []interface{}{}
if !sender.Message.FromGroup() {
@@ -154,5 +161,14 @@ func (sender *Sender) Reply(rt interface{}) error {
}
func (sender *Sender) RecallGroupMessage() error {
cid := sender.GetChatID()
if cid == 0 {
return nil
}
sender.chat = &core.Chat{
Class: sender.GetImType(),
ID: sender.GetChatID(),
UserID: sender.GetUserID(),
}
return b.Delete(sender.Message)
}