refactor: reorganize API and WebSocket modules

Split client, endpoint, and WebSocket implementations into domain-focused modules while preserving the public API.\n\nImprove crate and API documentation to describe responsibilities, authentication boundaries, and response compatibility.
This commit is contained in:
2026-07-19 22:31:47 -07:00
parent c5db920738
commit b3e3a3c87c
33 changed files with 2956 additions and 2712 deletions
+119
View File
@@ -0,0 +1,119 @@
//! 点赞相关直播命令的数据模型.
use serde_json::Value;
use std::collections::HashMap;
/// 用户点赞消息。
#[derive(Debug, Clone, PartialEq)]
pub struct LikeClickMessage {
/// 服务端原始命令名。
pub cmd: String,
/// 点赞业务数据。
pub data: LikeClickData,
/// 未被当前版本建模的顶层字段。
pub extra: HashMap<String, Value>,
}
/// [`LikeClickMessage`] 的点赞业务数据。
#[derive(Debug, Clone, Default, PartialEq)]
pub struct LikeClickData {
/// 点赞用户 UID。
pub uid: Option<u64>,
/// 点赞用户昵称。
pub uname: Option<String>,
/// 点赞文案。
pub like_text: Option<String>,
/// 当前点赞计数。
pub like_count: Option<u64>,
/// 是否为点赞操作。
pub is_like: Option<bool>,
/// 点赞图标 URL。
pub icon: Option<String>,
/// 粉丝勋章信息。
pub fans_medal: Option<LikeFansMedalInfo>,
/// 用户贡献信息。
pub contribution_info: Option<LikeContributionInfo>,
/// 用户身份标识。
pub identities: Vec<Value>,
/// 弹幕评分。
pub dmscore: Option<u64>,
/// 未被当前版本建模的 `data` 字段。
pub extra: HashMap<String, Value>,
}
/// 点赞消息中的粉丝勋章信息。
#[derive(Debug, Clone, Default, PartialEq)]
pub struct LikeFansMedalInfo {
/// 勋章等级。
pub level: Option<u8>,
/// 勋章名称。
pub name: Option<String>,
/// 勋章颜色。
pub color: Option<u32>,
/// 渐变起始颜色。
pub color_start: Option<u32>,
/// 渐变结束颜色。
pub color_end: Option<u32>,
/// 边框颜色。
pub color_border: Option<u32>,
/// 勋章所属直播间 ID。
pub anchor_room_id: Option<u64>,
/// 勋章所属主播昵称。
pub anchor_name: Option<String>,
/// 大航海等级。
pub guard_level: Option<u8>,
/// 未被当前版本建模的字段。
pub extra: HashMap<String, Value>,
}
/// 点赞消息中的用户贡献信息。
#[derive(Debug, Clone, Default, PartialEq)]
pub struct LikeContributionInfo {
/// 贡献等级。
pub grade: Option<u64>,
/// 未被当前版本建模的字段。
pub extra: HashMap<String, Value>,
}
/// 直播间点赞计数变化消息。
#[derive(Debug, Clone, Default, PartialEq)]
pub struct LikeUpdateMessage {
/// 服务端原始命令名。
pub cmd: String,
/// 直播间当前点赞计数。
pub click_count: Option<u64>,
/// 未被当前版本建模或类型不符合预期的 `data` 字段。
pub data_extra: HashMap<String, Value>,
/// 未被当前版本建模的顶层字段。
pub extra: HashMap<String, Value>,
}
/// 直播间点赞提示消息。
#[derive(Debug, Clone, Default, PartialEq)]
pub struct LikeNoticeMessage {
/// 服务端原始命令名。
pub cmd: String,
/// 直播间当前点赞计数。
pub like_count: Option<u64>,
/// 服务端定义的提示消息类型。
pub message_type: Option<u8>,
/// 组成提示文案的片段。
pub content_segments: Vec<LikeNoticeContentSegment>,
/// `content_segments` 中不是对象的原始条目。
pub unknown_content_segments: HashMap<usize, Value>,
/// 未被当前版本建模或类型不符合预期的 `data` 字段。
pub data_extra: HashMap<String, Value>,
/// 未被当前版本建模的顶层字段。
pub extra: HashMap<String, Value>,
}
/// [`LikeNoticeMessage`] 提示文案中的一个片段。
#[derive(Debug, Clone, Default, PartialEq)]
pub struct LikeNoticeContentSegment {
/// 服务端定义的片段类型。
pub kind: Option<u8>,
/// 片段文本。
pub text: Option<String>,
/// 未被当前版本建模的字段。
pub extra: HashMap<String, Value>,
}