Files
blivedm-go/message/superchat.go
2025-04-24 23:00:19 +08:00

81 lines
3.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package message
import (
"github.com/AynaLivePlayer/blivedm-go/utils"
log "github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
)
// SuperChat 超级弹幕消息结构体
// message_jpn: 消息日文翻译目前只出现在SUPER_CHAT_MESSAGE_JPN
// id_: str消息ID删除时用
type SuperChat struct {
BackgroundBottomColor string `json:"background_bottom_color"` //底部背景色
BackgroundColor string `json:"background_color"` //背景色
BackgroundColorEnd string `json:"background_color_end"`
BackgroundColorStart string `json:"background_color_start"`
BackgroundIcon string `json:"background_icon"` //背景图标
BackgroundImage string `json:"background_image"` //背景图
BackgroundPriceColor string `json:"background_price_color"` //背景价格颜色
ColorPoint float64 `json:"color_point"`
Dmscore int `json:"dmscore"`
EndTime int `json:"end_time"` //结束时间戳
Gift struct {
GiftId int `json:"gift_id"` //礼物ID
GiftName string `json:"gift_name"` //礼物名
Num int `json:"num"`
} `json:"gift"`
Id int `json:"id"`
IsRanked int `json:"is_ranked"`
IsSendAudit int `json:"is_send_audit"`
MedalInfo struct {
AnchorRoomid int `json:"anchor_roomid"`
AnchorUname string `json:"anchor_uname"`
GuardLevel int `json:"guard_level"` // 舰队等级0:非舰队1:总督2:提督3:舰长
IconId int `json:"icon_id"`
IsLighted int `json:"is_lighted"`
MedalColor string `json:"medal_color"`
MedalColorBorder int `json:"medal_color_border"`
MedalColorEnd int `json:"medal_color_end"`
MedalColorStart int `json:"medal_color_start"`
MedalLevel int `json:"medal_level"`
MedalName string `json:"medal_name"`
Special string `json:"special"`
TargetId int `json:"target_id"`
} `json:"medal_info"`
Message string `json:"message"` // 消息
MessageFontColor string `json:"message_font_color"`
MessageTrans string `json:"message_trans"`
Price int `json:"price"` // 价格(人民币)
Rate int `json:"rate"`
StartTime int `json:"start_time"` // 开始时间戳
Time int `json:"time"` //剩余时间
Token string `json:"token"`
TransMark int `json:"trans_mark"`
Ts int `json:"ts"`
Uid int `json:"uid"` //用户ID
UserInfo struct {
Face string `json:"face"` //用户头像URL
FaceFrame string `json:"face_frame"`
GuardLevel int `json:"guard_level"`
IsMainVip int `json:"is_main_vip"`
IsSvip int `json:"is_svip"`
IsVip int `json:"is_vip"`
LevelColor string `json:"level_color"`
Manager int `json:"manager"`
NameColor string `json:"name_color"`
Title string `json:"title"`
Uname string `json:"uname"` //用户名
UserLevel int `json:"user_level"` //用户等级
} `json:"user_info"`
}
func (s *SuperChat) Parse(data []byte) {
sb := utils.BytesToString(data)
sd := gjson.Get(sb, "data").String()
err := utils.UnmarshalStr(sd, s)
if err != nil {
log.Error("parse superchat failed")
}
}