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:
@@ -0,0 +1,182 @@
|
||||
//! 排行、互动与房间状态相关直播命令的数据模型.
|
||||
|
||||
use serde::Deserialize;
|
||||
use serde_json::Value;
|
||||
use std::collections::HashMap;
|
||||
|
||||
/// 高能榜人数变化消息。
|
||||
#[derive(Debug, Clone, Default, PartialEq)]
|
||||
pub struct OnlineRankCountMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 高能榜人数。
|
||||
pub count: Option<u64>,
|
||||
/// 高能榜人数显示文本。
|
||||
pub count_text: Option<String>,
|
||||
/// 在线人数。
|
||||
pub online_count: Option<u64>,
|
||||
/// 在线人数显示文本。
|
||||
pub online_count_text: Option<String>,
|
||||
/// 未被当前版本建模的字段。
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 看过人数变化消息。
|
||||
#[derive(Debug, Clone, Default, PartialEq)]
|
||||
pub struct WatchedChangeMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 看过人数。
|
||||
pub watched_count: Option<u64>,
|
||||
/// 小字号显示文本。
|
||||
pub text_small: Option<String>,
|
||||
/// 大字号显示文本。
|
||||
pub text_large: Option<String>,
|
||||
/// 未被当前版本建模的字段。
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 一批下播房间列表消息。
|
||||
#[derive(Debug, Clone, Default, PartialEq)]
|
||||
pub struct StopLiveRoomListMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 已下播的房间 ID 列表。
|
||||
pub room_ids: Vec<u64>,
|
||||
/// 未被当前版本建模的字段。
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 礼物星球进度消息。
|
||||
#[derive(Debug, Clone, Default, PartialEq)]
|
||||
pub struct GiftStarProcessMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 当前进度名称。
|
||||
pub name: Option<String>,
|
||||
/// 当前数量。
|
||||
pub current: Option<u64>,
|
||||
/// 目标数量。
|
||||
pub total: Option<u64>,
|
||||
/// 服务端版本号。
|
||||
pub version: Option<u64>,
|
||||
/// 未被当前版本建模的字段。
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 含 protobuf Base64 载荷的推送消息。
|
||||
#[derive(Debug, Clone, Default, PartialEq)]
|
||||
pub struct ProtobufPayloadMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// Base64 编码的 protobuf 数据。
|
||||
pub pb_base64: String,
|
||||
/// 弹幕评分。
|
||||
pub dm_score: Option<u64>,
|
||||
/// 未被当前版本建模的顶层或 `data` 字段。
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 大航海购买消息。
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
pub struct GuardBuyMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 购买用户 UID。
|
||||
pub uid: u64,
|
||||
/// 购买用户昵称。
|
||||
pub username: String,
|
||||
/// 舰队名称。
|
||||
pub gift_name: String,
|
||||
/// 购买数量。
|
||||
pub num: u64,
|
||||
/// 舰队等级,通常 1=总督、2=提督、3=舰长。
|
||||
pub guard_level: u8,
|
||||
/// 未被当前版本建模的顶层字段。
|
||||
#[serde(default, flatten)]
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 醒目留言消息。
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
pub struct SuperChatMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 醒目留言的具体数据。
|
||||
pub data: SuperChatData,
|
||||
/// 未被当前版本建模的顶层字段。
|
||||
#[serde(default, flatten)]
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// [`SuperChatMessage`] 的业务数据。
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
pub struct SuperChatData {
|
||||
/// 发送用户 UID。
|
||||
pub uid: u64,
|
||||
/// 醒目留言文本。
|
||||
pub message: String,
|
||||
/// 醒目留言价格。
|
||||
pub price: u64,
|
||||
/// 未被当前版本建模的字段。
|
||||
#[serde(default, flatten)]
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 用户进入、关注或分享等互动消息。
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
pub struct InteractWordMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 互动事件的具体数据。
|
||||
pub data: InteractWordData,
|
||||
/// 未被当前版本建模的顶层字段。
|
||||
#[serde(default, flatten)]
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// [`InteractWordMessage`] 的业务数据。
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
pub struct InteractWordData {
|
||||
/// 触发互动的用户 UID。
|
||||
pub uid: u64,
|
||||
/// 触发互动的用户昵称。
|
||||
pub uname: String,
|
||||
/// 互动类型,通常 1=进入、2=关注、3=分享。
|
||||
pub msg_type: u8,
|
||||
/// 未被当前版本建模的字段。
|
||||
#[serde(default, flatten)]
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 直播间标题或分区发生变化时的消息。
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
pub struct RoomChangeMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 当前直播标题。
|
||||
#[serde(default)]
|
||||
pub title: Option<String>,
|
||||
/// 当前子分区名称。
|
||||
#[serde(default)]
|
||||
pub area_name: Option<String>,
|
||||
/// 当前父分区名称。
|
||||
#[serde(default)]
|
||||
pub parent_area_name: Option<String>,
|
||||
/// 未被当前版本建模的顶层字段。
|
||||
#[serde(default, flatten)]
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
/// 开播或下播状态消息。
|
||||
#[derive(Debug, Clone, Deserialize, PartialEq)]
|
||||
pub struct LiveStatusMessage {
|
||||
/// 服务端原始命令名。
|
||||
pub cmd: String,
|
||||
/// 直播间 ID;部分推送可能省略该字段。
|
||||
#[serde(default)]
|
||||
pub roomid: Option<u64>,
|
||||
/// 未被当前版本建模的顶层字段。
|
||||
#[serde(default, flatten)]
|
||||
pub extra: HashMap<String, Value>,
|
||||
}
|
||||
Reference in New Issue
Block a user