Skip to content

Commit

Permalink
beta66
Browse files Browse the repository at this point in the history
  • Loading branch information
Hoshinonyaruko committed Nov 30, 2023
1 parent 1cc4dba commit 9140e1d
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 24 deletions.
20 changes: 12 additions & 8 deletions Processor/ProcessC2CMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,19 +172,23 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
SelfID: int64(p.Settings.AppID),
UserID: userid64,
Sender: Sender{
Nickname: "",
UserID: userid64,
TinyID: "",
Card: "",
Sex: "0",
Age: 0,
Area: "",
Level: "0",
UserID: userid64,
TinyID: "0",
Sex: "0",
Age: 0,
Area: "0",
Level: "0",
},
SubType: "normal",
Time: time.Now().Unix(),
Avatar: "",
}
//根据条件判断是否增加nick和card
var CaN = config.GetCardAndNick()
if CaN != "" {
groupMsg.Sender.Nickname = CaN
groupMsg.Sender.Card = CaN
}
// 根据条件判断是否添加Echo字段
if config.GetTwoWayEcho() {
groupMsg.Echo = echostr
Expand Down
4 changes: 2 additions & 2 deletions Processor/ProcessChannelDirectMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,12 +181,12 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
SelfTinyID: "",
Sender: Sender{
Nickname: data.Member.Nick,
TinyID: "",
TinyID: "0",
UserID: userid64,
Card: data.Member.Nick,
Sex: "0",
Age: 0,
Area: "",
Area: "0",
Level: "0",
},
SubType: "channel",
Expand Down
18 changes: 11 additions & 7 deletions Processor/ProcessGroupMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,18 +93,22 @@ func (p *Processors) ProcessGroupMessage(data *dto.WSGroupATMessageData) error {
SelfID: int64(p.Settings.AppID),
UserID: userid64,
Sender: Sender{
Nickname: "",
UserID: userid64,
Card: "",
Sex: "0",
Age: 0,
Area: "",
Level: "0",
UserID: userid64,
Sex: "0",
Age: 0,
Area: "0",
Level: "0",
},
SubType: "normal",
Time: time.Now().Unix(),
Avatar: "",
}
//根据条件判断是否增加nick和card
var CaN = config.GetCardAndNick()
if CaN != "" {
groupMsg.Sender.Nickname = CaN
groupMsg.Sender.Card = CaN
}
// 根据条件判断是否添加Echo字段
if config.GetTwoWayEcho() {
groupMsg.Echo = echostr
Expand Down
6 changes: 3 additions & 3 deletions Processor/ProcessGuildATMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@ func (p *Processors) ProcessGuildATMessage(data *dto.WSATMessageData) error {
PostType: "message",
SelfID: int64(p.Settings.AppID),
UserID: userid64,
SelfTinyID: "",
SelfTinyID: "0",
Sender: Sender{
Nickname: data.Member.Nick,
TinyID: "",
TinyID: "0",
UserID: userid64,
Card: data.Member.Nick,
Sex: "0",
Age: 0,
Area: "",
Area: "0",
Level: "0",
},
SubType: "channel",
Expand Down
6 changes: 3 additions & 3 deletions Processor/ProcessGuildNormalMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,15 @@ func (p *Processors) ProcessGuildNormalMessage(data *dto.WSMessageData) error {
PostType: "message",
SelfID: int64(p.Settings.AppID),
UserID: userid64,
SelfTinyID: "",
SelfTinyID: "0",
Sender: Sender{
Nickname: data.Member.Nick,
TinyID: "",
TinyID: "0",
UserID: userid64,
Card: data.Member.Nick,
Sex: "0",
Age: 0,
Area: "",
Area: "0",
Level: "0",
},
SubType: "channel",
Expand Down
13 changes: 13 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ type Settings struct {
LotusPassword string `yaml:"lotus_password"`
WsServerPath string `yaml:"ws_server_path"`
IdmapPro bool `yaml:"idmap_pro"`
CardAndNick string `yaml:"card_nick"`
}

// LoadConfig 从文件中加载配置并初始化单例配置
Expand Down Expand Up @@ -989,3 +990,15 @@ func GetIdmapPro() bool {
}
return instance.Settings.IdmapPro
}

// 获取GetCardAndNick的值
func GetCardAndNick() string {
mu.Lock()
defer mu.Unlock()

if instance == nil {
mylog.Println("Warning: instance is nil when trying to GetCardAndNick value.")
return ""
}
return instance.Settings.CardAndNick
}
2 changes: 1 addition & 1 deletion handlers/send_group_msg.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ func handleSendGroupMsg(client callapi.Client, api openapi.OpenAPI, apiv2 openap
mylog.Printf("Error reading config: %v", err)
return
}
handleSendGuildChannelPrivateMsg(client, api, apiv2, message, &value, &message.Params.ChannelID)
handleSendGuildChannelPrivateMsg(client, api, apiv2, message, &value, &RChannelID)
case "group_private":
//用userid还原出openid 这是虚拟成群的群聊私聊信息
message.Params.UserID = message.Params.GroupID.(string)
Expand Down
42 changes: 42 additions & 0 deletions handlers/send_private_msg.go
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,27 @@ func handleSendGuildChannelPrivateMsg(client callapi.Client, api openapi.OpenAPI
messageID = GetMessageIDByUseridOrGroupid(config.GetAppIDStr(), UserID)
mylog.Println("通过GetMessageIDByUserid函数获取的message_id:", messageID)
}
} else {
//频道私信 转 私信
if GroupID != "" && config.GetIdmapPro() {
_, UserID, err = idmap.RetrieveRowByIDv2Pro(GroupID, RawUserID)
if err != nil {
mylog.Printf("Error reading config: %v", err)
return
}
mylog.Printf("测试,通过Proid获取的UserID:%v", UserID)
} else {
UserID, err = idmap.RetrieveRowByIDv2(RawUserID)
if err != nil {
mylog.Printf("Error reading config: %v", err)
return
}
}
// 如果messageID为空,通过函数获取
if messageID == "" {
messageID = GetMessageIDByUseridOrGroupid(config.GetAppIDStr(), UserID)
mylog.Println("通过GetMessageIDByUserid函数获取的message_id:", messageID)
}
}
} else {
if guildID == "" && channelID == "" {
Expand Down Expand Up @@ -279,6 +300,27 @@ func handleSendGuildChannelPrivateMsg(client callapi.Client, api openapi.OpenAPI
messageID = GetMessageIDByUseridOrGroupid(config.GetAppIDStr(), originalGroupID)
mylog.Println("通过GetMessageIDByUseridOrGroupid函数获取的message_id:", originalGroupID, messageID)
}
} else {
//频道私信 转 群聊 获取id
var originalGroupID string
if config.GetIdmapPro() {
_, originalGroupID, err = idmap.RetrieveRowByIDv2Pro(channelID, GroupID)
if err != nil {
mylog.Printf("Error retrieving original GroupID2: %v", err)
return
}
mylog.Printf("测试,通过Proid获取的originalGroupID:%v", originalGroupID)
} else {
originalGroupID, err = idmap.RetrieveRowByIDv2(message.Params.GroupID.(string))
if err != nil {
mylog.Printf("Error retrieving original GroupID: %v", err)
return
}
}
if messageID == "" {
messageID = GetMessageIDByUseridOrGroupid(config.GetAppIDStr(), originalGroupID)
mylog.Println("通过GetMessageIDByUseridOrGroupid函数获取的message_id:", originalGroupID, messageID)
}
}
}
//开发环境用
Expand Down
1 change: 1 addition & 0 deletions template/config_template.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ settings:
master_id : ["1","2"] #群场景尚未开放获取管理员和列表能力,手动从日志中获取需要设置为管理,的user_id并填入(适用插件有权限判断场景)
record_sampleRate : 24000 #语音文件的采样率 最高48000 默认24000 单位Khz
record_bitRate : 24000 #语音文件的比特率 默认25000 代表 25 kbps 最高无限 请根据带宽 您发送的实际码率调整
card_nick : "" #默认为空,连接mirai-overflow时,请设置为非空,这里是机器人对用户称谓,为空为插件获取,mirai不支持
#正向ws设置
ws_server_path : "ws" #默认监听0.0.0.0:port/ws_server_path 若有安全需求,可不放通port到公网,或设置ws_server_token 若想监听/ 可改为"",若想监听到不带/地址请写nil
Expand Down

0 comments on commit 9140e1d

Please sign in to comment.