This commit is contained in:
cdle
2023-07-06 09:22:52 +08:00
parent 5b5eee0718
commit 2f38b8393e
10 changed files with 93 additions and 74 deletions
+5 -5
View File
@@ -293,11 +293,11 @@ interface Sender {
getPlatform(): string; //获取消息平台
getBotId(): string; //获取机器人ID
reply(content: string): string; //回复消息,媒体消息推荐使用CQ码实现,返回消息ID
recallMessage(meesageId: string | string[]): Promise<boolean>; //撤回消息
kick(user_id: string): Promise<boolean>; //移出群聊
unkick(user_id: string): Promise<boolean>; //取消移出群聊
ban(user_id: string, duration: number): Promise<boolean>; //禁言,并指定时长
unban(user_id: string): Promise<boolean>; //取消禁言
recallMessage(meesageId: string | string[] | number): {error: string}; //撤回消息number类型时为延时毫秒
kick(user_id: string): {error: string}; //移出群聊
unkick(user_id: string): {error: string}; //取消移出群聊
ban(user_id: string, duration: number): {error: string}; //禁言,并指定时长
unban(user_id: string): {error: string}; //取消禁言
}
```
+35 -11
View File
@@ -740,36 +740,60 @@ func (sender *CustomSender) Copy() common.Sender {
return &new
}
func (sender *CustomSender) RecallMessage(ps ...interface{}) error {
func (sender *CustomSender) RecallMessage(ps ...interface{}) {
recalls := []func(){}
var timeout int
for _, p := range ps {
switch p := p.(type) {
case int, int64:
timeout = utils.Int(p)
case string:
sender.Reply(mystr.BuildCQCode("delete", H{"id": p}, ""))
if p != "" {
recalls = append(recalls, func() {
sender.Reply(mystr.BuildCQCode("delete", H{"id": p}, ""))
})
}
case []string:
for _, v := range p {
sender.Reply(mystr.BuildCQCode("delete", H{"id": v}, ""))
if v != "" {
recalls = append(recalls, func() {
sender.Reply(mystr.BuildCQCode("delete", H{"id": v}, ""))
})
}
}
case [][]string:
for _, v := range p {
for _, v2 := range v {
sender.Reply(mystr.BuildCQCode("delete", H{"id": v2}, ""))
recalls = append(recalls, func() {
sender.Reply(mystr.BuildCQCode("delete", H{"id": v2}, ""))
})
}
}
}
}
return nil
go func() {
if timeout != 0 {
time.Sleep(time.Millisecond * time.Duration(timeout))
}
for _, recall := range recalls {
recall()
}
}()
}
func (sender *CustomSender) GroupKick(uid string, reject_add_request bool) {
sender.Reply(mystr.BuildCQCode("kick", H{"user_id": uid, "chat_id": sender.GetChatID(), "forever": reject_add_request}, ""))
func (sender *CustomSender) GroupKick(uid string, reject_add_request bool) error {
_, err := sender.Reply(mystr.BuildCQCode("kick", H{"user_id": uid, "chat_id": sender.GetChatID(), "forever": reject_add_request}, ""))
return err
}
func (sender *CustomSender) GroupBan(uid string, duration int) {
sender.Reply(mystr.BuildCQCode("ban", H{"user_id": uid, "chat_id": sender.GetChatID(), "duration": duration}, ""))
func (sender *CustomSender) GroupBan(uid string, duration int) error {
_, err := sender.Reply(mystr.BuildCQCode("ban", H{"user_id": uid, "chat_id": sender.GetChatID(), "duration": duration}, ""))
return err
}
func (sender *CustomSender) GroupUnban(uid string) {
sender.Reply(mystr.BuildCQCode("ban", H{"user_id": uid, "chat_id": sender.GetChatID(), "duration": 0}, ""))
func (sender *CustomSender) GroupUnban(uid string) error {
_, err := sender.Reply(mystr.BuildCQCode("ban", H{"user_id": uid, "chat_id": sender.GetChatID(), "duration": 0}, ""))
return err
}
func (sender *CustomSender) IsAdmin() bool {
+1 -1
View File
@@ -8,6 +8,6 @@
</head>
<body>
<div id="root"></div>
<script src="/admin/umi.b07a580e.js"></script>
<script src="/admin/umi.37bf7c95.js"></script>
</body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+14 -13
View File
@@ -140,12 +140,12 @@ func (sender *Faker) Copy() common.Sender {
return &new
}
func (sender *Faker) GroupKick(uid string, reject_add_request bool) {
func (sender *Faker) GroupKick(uid string, reject_add_request bool) error {
return nil
}
func (sender *Faker) GroupBan(uid string, duration int) {
func (sender *Faker) GroupBan(uid string, duration int) error {
return nil
}
type BaseSender struct {
@@ -299,8 +299,8 @@ func (sender *BaseSender) GetMessageID() string {
return ""
}
func (sender *BaseSender) RecallMessage(...interface{}) error {
return nil
func (sender *BaseSender) RecallMessage(...interface{}) {
}
func (sender *BaseSender) GetUserID() string {
@@ -316,19 +316,20 @@ func (sender *BaseSender) GetImType() string {
return ""
}
func (sender *BaseSender) GroupKick(uid string, reject_add_request bool) {
func (sender *BaseSender) GroupKick(uid string, reject_add_request bool) error {
return nil
}
func (sender *BaseSender) GroupUnkick(uid string) {
func (sender *BaseSender) GroupUnkick(uid string) error {
return nil
}
func (sender *BaseSender) GroupBan(uid string, duration int) {
func (sender *BaseSender) GroupBan(uid string, duration int) error {
return nil
}
func (sender *BaseSender) GroupUnban(uid string) {
func (sender *BaseSender) GroupUnban(uid string) error {
return nil
}
+5 -5
View File
@@ -6,7 +6,7 @@ type Sender interface {
GetBotID() string
GetImType() string
GetMessageID() string
RecallMessage(...interface{}) error
RecallMessage(...interface{})
GetUserName() string
GetChatName() string
IsReply() bool
@@ -33,10 +33,10 @@ type Sender interface {
ClearContinue()
Await(Sender, func(Sender) interface{}, ...interface{}) interface{}
Copy() Sender
GroupKick(uid string, reject_add_request bool)
GroupUnkick(uid string)
GroupBan(uid string, duration int)
GroupUnban(uid string)
GroupKick(uid string, reject_add_request bool) error
GroupUnkick(uid string) error
GroupBan(uid string, duration int) error
GroupUnban(uid string) error
AtLast()
UAtLast()
IsAtLast() bool
+19 -24
View File
@@ -151,24 +151,7 @@ func (sender *SenderJsIplm) GetPlatform() string {
return sender.Message.GetImType()
}
func (sender *SenderJsIplm) RecallMessage(p ...interface{}) {
np := []interface{}{}
var i = 0
for _, v := range p {
switch v.(type) {
case int, int32, int64, uint, int16:
i = utils.Int(v)
default:
np = append(np, v)
}
}
if i != 0 {
go func() {
sleep(i)
sender.Message.RecallMessage(np...)
}()
} else {
go sender.Message.RecallMessage(np...)
}
sender.Message.RecallMessage(p...)
}
func (sender *SenderJsIplm) GetUserName() string {
return sender.Message.GetUserName()
@@ -216,16 +199,28 @@ func (sender *SenderJsIplm) GetChatId() string {
return sender.Message.GetChatID()
}
func (sender *SenderJsIplm) Kick(uid string) {
sender.Message.GroupKick(uid, false)
func (sender *SenderJsIplm) Kick(uid string) interface{} {
err := sender.Message.GroupKick(uid, false)
if err != nil {
return err.Error()
}
return nil
}
func (sender *SenderJsIplm) Unkick(uid string) {
sender.Message.GroupUnkick(uid)
func (sender *SenderJsIplm) Unkick(uid string) interface{} {
err := sender.Message.GroupUnkick(uid)
if err != nil {
return err.Error()
}
return nil
}
func (sender *SenderJsIplm) Ban(uid string, duration int) {
sender.Message.GroupBan(uid, duration)
func (sender *SenderJsIplm) Ban(uid string, duration int) interface{} {
err := sender.Message.GroupBan(uid, duration)
if err != nil {
return err.Error()
}
return nil
}
func (sender *SenderJsIplm) Param(i interface{}) string {
+12 -13
View File
@@ -9,7 +9,6 @@ import (
"reflect"
"strings"
"sync"
"time"
"github.com/Dreamacro/clash/adapter"
C "github.com/Dreamacro/clash/constant"
@@ -32,14 +31,14 @@ type ProxyConfig struct {
Rules []string `json:"rules"`
Plugins []string `json:"plugins"`
Cipher string `json:"cipher,omitempty"`
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
SkipCertVerify bool `json:"skip-cert-verify,omitempty"`
TLS bool `json:"tls,omitempty"`
CreatedAt int `json:"created_at,omitempty"`
Remark string `json:"remark,omitempty"`
Enable bool `json:"enable,omitempty"`
// Cipher string `json:"cipher,omitempty"`
// Username string `json:"username,omitempty"`
// Password string `json:"password,omitempty"`
// SkipCertVerify bool `json:"skip-cert-verify,omitempty"`
// TLS bool `json:"tls,omitempty"`
// CreatedAt int `json:"created_at,omitempty"`
// Remark string `json:"remark,omitempty"`
Enable bool `json:"enable,omitempty"`
// UDP bool `json:"udp,omitempty"`
// Plugin string `json:"plugin,omitempty"`
// PluginOpts map[string]string `json:"plugin-opts,omitempty"`
@@ -187,10 +186,10 @@ func init() {
// Port: ncfg.Port,
// }
}
if ncfg.CreatedAt == 0 {
ncfg.CreatedAt = int(time.Now().Unix())
new = "o:" + string(utils.JsonMarshal(ncfg))
}
// if ncfg.CreatedAt == 0 {
// ncfg.CreatedAt = int(time.Now().Unix())
// new = "o:" + string(utils.JsonMarshal(ncfg))
// }
// ov, ok := Proxies.Load(nkey)
// if ok && (!IsDifferent(ocfg, ncfg, []string{"Name", "UUID", "Rules", "Plugins"}) || checkProxy(ov.(C.Proxy))) { //代理依旧有效
// return nil