refactor: modernize codebase for Go 1.26 and fix adapter issues
- Upgrade Go version from 1.24 to 1.26.1 with updated dependencies
- Replace interface{} with any type throughout codebase
- Add message deduplication in OneBot11 adapter to prevent duplicate event processing
- URL-encode access token in WebSocket connections to handle special characters
- Remove duplicate bot startup hooks in DI providers (now handled by botManager.StartAll)
- Use slices.Clone and errgroup.Go patterns for cleaner concurrent code
- Apply omitzero JSON tags for optional fields (Go 1.24+ feature)
This commit is contained in:
@@ -5,8 +5,8 @@ import "fmt"
|
||||
// MessageSegment 消息段(基于 OneBot12 设计)
|
||||
// 通用消息段结构,适配器负责转换为具体协议格式
|
||||
type MessageSegment struct {
|
||||
Type string `json:"type"` // 消息段类型
|
||||
Data map[string]interface{} `json:"data"` // 消息段数据
|
||||
Type string `json:"type"` // 消息段类型
|
||||
Data map[string]any `json:"data"` // 消息段数据
|
||||
}
|
||||
|
||||
// MessageChain 消息链(基于 OneBot12 设计)
|
||||
@@ -33,17 +33,17 @@ const (
|
||||
func NewTextSegment(text string) MessageSegment {
|
||||
return MessageSegment{
|
||||
Type: SegmentTypeText,
|
||||
Data: map[string]interface{}{
|
||||
Data: map[string]any{
|
||||
"text": text,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// NewMentionSegment 创建@提及消息段(OneBot12 标准)
|
||||
func NewMentionSegment(userID interface{}) MessageSegment {
|
||||
func NewMentionSegment(userID any) MessageSegment {
|
||||
return MessageSegment{
|
||||
Type: SegmentTypeMention,
|
||||
Data: map[string]interface{}{
|
||||
Data: map[string]any{
|
||||
"user_id": userID,
|
||||
},
|
||||
}
|
||||
@@ -53,7 +53,7 @@ func NewMentionSegment(userID interface{}) MessageSegment {
|
||||
func NewImageSegment(fileID string) MessageSegment {
|
||||
return MessageSegment{
|
||||
Type: SegmentTypeImage,
|
||||
Data: map[string]interface{}{
|
||||
Data: map[string]any{
|
||||
"file_id": fileID,
|
||||
},
|
||||
}
|
||||
@@ -63,17 +63,17 @@ func NewImageSegment(fileID string) MessageSegment {
|
||||
func NewImageSegmentFromBase64(base64Data string) MessageSegment {
|
||||
return MessageSegment{
|
||||
Type: SegmentTypeImage,
|
||||
Data: map[string]interface{}{
|
||||
Data: map[string]any{
|
||||
"file": fmt.Sprintf("base64://%s", base64Data),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// NewReplySegment 创建回复消息段
|
||||
func NewReplySegment(messageID interface{}) MessageSegment {
|
||||
func NewReplySegment(messageID any) MessageSegment {
|
||||
return MessageSegment{
|
||||
Type: SegmentTypeReply,
|
||||
Data: map[string]interface{}{
|
||||
Data: map[string]any{
|
||||
"message_id": messageID,
|
||||
},
|
||||
}
|
||||
@@ -95,7 +95,7 @@ func (mc MessageChain) AppendText(text string) MessageChain {
|
||||
}
|
||||
|
||||
// AppendMention 追加@提及到消息链
|
||||
func (mc MessageChain) AppendMention(userID interface{}) MessageChain {
|
||||
func (mc MessageChain) AppendMention(userID any) MessageChain {
|
||||
return mc.Append(NewMentionSegment(userID))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user