mirror of
https://github.com/Xinrea/bili-shadowreplay.git
synced 2025-11-24 20:15:34 +08:00
fix: douyin room info parse error
This commit is contained in:
2
_typos.toml
Normal file
2
_typos.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[default.extend-identifiers]
|
||||||
|
pull_datas = "pull_datas"
|
||||||
@@ -1,11 +1,14 @@
|
|||||||
use serde_derive::Deserialize;
|
use serde_derive::Deserialize;
|
||||||
use serde_derive::Serialize;
|
use serde_derive::Serialize;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct DouyinRoomInfoResponse {
|
pub struct DouyinRoomInfoResponse {
|
||||||
pub data: Data,
|
pub data: Data,
|
||||||
|
#[serde(default)]
|
||||||
|
pub extra: Option<serde_json::Value>,
|
||||||
#[serde(rename = "status_code")]
|
#[serde(rename = "status_code")]
|
||||||
pub status_code: i64,
|
pub status_code: i64,
|
||||||
}
|
}
|
||||||
@@ -14,9 +17,29 @@ pub struct DouyinRoomInfoResponse {
|
|||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct Data {
|
pub struct Data {
|
||||||
pub data: Vec<Daum>,
|
pub data: Vec<Daum>,
|
||||||
|
#[serde(rename = "enter_room_id", default)]
|
||||||
|
pub enter_room_id: Option<String>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub extra: Option<serde_json::Value>,
|
||||||
pub user: User,
|
pub user: User,
|
||||||
|
#[serde(rename = "qrcode_url", default)]
|
||||||
|
pub qrcode_url: Option<String>,
|
||||||
|
#[serde(rename = "enter_mode", default)]
|
||||||
|
pub enter_mode: Option<i64>,
|
||||||
#[serde(rename = "room_status")]
|
#[serde(rename = "room_status")]
|
||||||
pub room_status: i64,
|
pub room_status: i64,
|
||||||
|
#[serde(rename = "partition_road_map", default)]
|
||||||
|
pub partition_road_map: Option<serde_json::Value>,
|
||||||
|
#[serde(rename = "similar_rooms", default)]
|
||||||
|
pub similar_rooms: Option<Vec<serde_json::Value>>,
|
||||||
|
#[serde(rename = "shark_decision_conf", default)]
|
||||||
|
pub shark_decision_conf: Option<String>,
|
||||||
|
#[serde(rename = "web_stream_url", default)]
|
||||||
|
pub web_stream_url: Option<serde_json::Value>,
|
||||||
|
#[serde(rename = "login_lead", default)]
|
||||||
|
pub login_lead: Option<serde_json::Value>,
|
||||||
|
#[serde(rename = "auth_cert_info", default)]
|
||||||
|
pub auth_cert_info: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
@@ -28,9 +51,36 @@ pub struct Daum {
|
|||||||
#[serde(rename = "status_str")]
|
#[serde(rename = "status_str")]
|
||||||
pub status_str: String,
|
pub status_str: String,
|
||||||
pub title: String,
|
pub title: String,
|
||||||
|
#[serde(rename = "user_count_str", default)]
|
||||||
|
pub user_count_str: Option<String>,
|
||||||
pub cover: Option<Cover>,
|
pub cover: Option<Cover>,
|
||||||
#[serde(rename = "stream_url")]
|
#[serde(rename = "stream_url")]
|
||||||
pub stream_url: Option<StreamUrl>,
|
pub stream_url: Option<StreamUrl>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub owner: Option<Owner>,
|
||||||
|
#[serde(rename = "room_auth", default)]
|
||||||
|
pub room_auth: Option<RoomAuth>,
|
||||||
|
#[serde(rename = "live_room_mode", default)]
|
||||||
|
pub live_room_mode: Option<i64>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub stats: Option<Stats>,
|
||||||
|
#[serde(rename = "has_commerce_goods", default)]
|
||||||
|
pub has_commerce_goods: Option<bool>,
|
||||||
|
#[serde(rename = "linker_map", default)]
|
||||||
|
pub linker_map: Option<LinkerMap>,
|
||||||
|
#[serde(rename = "linker_detail", default)]
|
||||||
|
pub linker_detail: Option<LinkerDetail>,
|
||||||
|
#[serde(rename = "room_view_stats", default)]
|
||||||
|
pub room_view_stats: Option<RoomViewStats>,
|
||||||
|
#[serde(rename = "scene_type_info", default)]
|
||||||
|
pub scene_type_info: Option<SceneTypeInfo>,
|
||||||
|
#[serde(rename = "like_count", default)]
|
||||||
|
pub like_count: Option<i64>,
|
||||||
|
#[serde(rename = "owner_user_id_str", default)]
|
||||||
|
pub owner_user_id_str: Option<String>,
|
||||||
|
// Many other fields that can be ignored for now
|
||||||
|
#[serde(flatten)]
|
||||||
|
pub other_fields: HashMap<String, serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
@@ -56,8 +106,8 @@ pub struct StreamUrl {
|
|||||||
#[serde(rename = "live_core_sdk_data")]
|
#[serde(rename = "live_core_sdk_data")]
|
||||||
pub live_core_sdk_data: LiveCoreSdkData,
|
pub live_core_sdk_data: LiveCoreSdkData,
|
||||||
pub extra: Extra,
|
pub extra: Extra,
|
||||||
#[serde(rename = "pull_data")]
|
#[serde(rename = "pull_datas", default)]
|
||||||
pub pull_data: PullData,
|
pub pull_datas: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
|||||||
Reference in New Issue
Block a user