//! 点赞相关直播命令的数据模型. use serde_json::Value; use std::collections::HashMap; /// 用户点赞消息。 #[derive(Debug, Clone, PartialEq)] pub struct LikeClickMessage { /// 服务端原始命令名。 pub cmd: String, /// 点赞业务数据。 pub data: LikeClickData, /// 未被当前版本建模的顶层字段。 pub extra: HashMap, } /// [`LikeClickMessage`] 的点赞业务数据。 #[derive(Debug, Clone, Default, PartialEq)] pub struct LikeClickData { /// 点赞用户 UID。 pub uid: Option, /// 点赞用户昵称。 pub uname: Option, /// 点赞文案。 pub like_text: Option, /// 当前点赞计数。 pub like_count: Option, /// 是否为点赞操作。 pub is_like: Option, /// 点赞图标 URL。 pub icon: Option, /// 粉丝勋章信息。 pub fans_medal: Option, /// 用户贡献信息。 pub contribution_info: Option, /// 用户身份标识。 pub identities: Vec, /// 弹幕评分。 pub dmscore: Option, /// 未被当前版本建模的 `data` 字段。 pub extra: HashMap, } /// 点赞消息中的粉丝勋章信息。 #[derive(Debug, Clone, Default, PartialEq)] pub struct LikeFansMedalInfo { /// 勋章等级。 pub level: Option, /// 勋章名称。 pub name: Option, /// 勋章颜色。 pub color: Option, /// 渐变起始颜色。 pub color_start: Option, /// 渐变结束颜色。 pub color_end: Option, /// 边框颜色。 pub color_border: Option, /// 勋章所属直播间 ID。 pub anchor_room_id: Option, /// 勋章所属主播昵称。 pub anchor_name: Option, /// 大航海等级。 pub guard_level: Option, /// 未被当前版本建模的字段。 pub extra: HashMap, } /// 点赞消息中的用户贡献信息。 #[derive(Debug, Clone, Default, PartialEq)] pub struct LikeContributionInfo { /// 贡献等级。 pub grade: Option, /// 未被当前版本建模的字段。 pub extra: HashMap, } /// 直播间点赞计数变化消息。 #[derive(Debug, Clone, Default, PartialEq)] pub struct LikeUpdateMessage { /// 服务端原始命令名。 pub cmd: String, /// 直播间当前点赞计数。 pub click_count: Option, /// 未被当前版本建模或类型不符合预期的 `data` 字段。 pub data_extra: HashMap, /// 未被当前版本建模的顶层字段。 pub extra: HashMap, } /// 直播间点赞提示消息。 #[derive(Debug, Clone, Default, PartialEq)] pub struct LikeNoticeMessage { /// 服务端原始命令名。 pub cmd: String, /// 直播间当前点赞计数。 pub like_count: Option, /// 服务端定义的提示消息类型。 pub message_type: Option, /// 组成提示文案的片段。 pub content_segments: Vec, /// `content_segments` 中不是对象的原始条目。 pub unknown_content_segments: HashMap, /// 未被当前版本建模或类型不符合预期的 `data` 字段。 pub data_extra: HashMap, /// 未被当前版本建模的顶层字段。 pub extra: HashMap, } /// [`LikeNoticeMessage`] 提示文案中的一个片段。 #[derive(Debug, Clone, Default, PartialEq)] pub struct LikeNoticeContentSegment { /// 服务端定义的片段类型。 pub kind: Option, /// 片段文本。 pub text: Option, /// 未被当前版本建模的字段。 pub extra: HashMap, }