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