mirror of
https://github.com/lanyeeee/bilibili-video-downloader.git
synced 2026-09-05 15:38:52 +08:00
fix: 修复 PlayerInfo 潜在的JSON解析错误问题
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
use serde::{Deserialize, Deserializer};
|
||||
|
||||
pub mod audio_quality;
|
||||
pub mod available_media_formats;
|
||||
pub mod bangumi_follow_info;
|
||||
@@ -36,3 +38,12 @@ pub mod user_info;
|
||||
pub mod user_video_info;
|
||||
pub mod video_quality;
|
||||
pub mod watch_later_info;
|
||||
|
||||
fn deserialize_null_default<'de, D, T>(deserializer: D) -> Result<T, D::Error>
|
||||
where
|
||||
T: Default + Deserialize<'de>,
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let opt = Option::deserialize(deserializer)?;
|
||||
Ok(opt.unwrap_or_default())
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use specta::Type;
|
||||
|
||||
use super::deserialize_null_default;
|
||||
|
||||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize, Type)]
|
||||
#[serde(default)]
|
||||
#[allow(clippy::struct_excessive_bools)]
|
||||
@@ -30,6 +32,7 @@ pub struct PlayerInfo {
|
||||
pub online_count: i64,
|
||||
pub need_login_subtitle: bool,
|
||||
pub subtitle: SubtitleInPlayerInfo,
|
||||
#[serde(default, deserialize_with = "deserialize_null_default")]
|
||||
pub view_points: Vec<ViewPoint>,
|
||||
pub preview_toast: String,
|
||||
pub options: Options,
|
||||
|
||||
Reference in New Issue
Block a user