From 5a6b2c3a621f6b20c1324ea8b9c03426e3d8018b Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Sat, 17 Aug 2024 00:42:47 +0200 Subject: [PATCH] fix: parsing channels without banner --- src/client/response/channel.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/client/response/channel.rs b/src/client/response/channel.rs index 4bff8f2..eaa2cc2 100644 --- a/src/client/response/channel.rs +++ b/src/client/response/channel.rs @@ -125,29 +125,35 @@ pub(crate) struct PageHeaderRenderer { pub page_header_view_model: PageHeaderRendererInner, } +#[serde_as] #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub(crate) struct PageHeaderRendererInner { + /// Channel title (only used to extract verification badges) + #[serde_as(as = "DefaultOnError")] pub title: PhTitleView, + /// Channel avatar pub image: PhAvatarView, + /// Channel metadata (subscribers, video count) pub metadata: PhMetadataView, + #[serde(default)] pub banner: PhBannerView, } -#[derive(Debug, Deserialize)] +#[derive(Default, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub(crate) struct PhTitleView { pub dynamic_text_view_model: PhTitleView2, } -#[derive(Debug, Deserialize)] +#[derive(Default, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub(crate) struct PhTitleView2 { pub text: PhTitleView3, } #[serde_as] -#[derive(Debug, Deserialize)] +#[derive(Default, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub(crate) struct PhTitleView3 { #[serde_as(as = "VecSkipError<_>")] @@ -242,7 +248,7 @@ pub(crate) struct PhMetadataRow { pub metadata_parts: Vec, } -#[derive(Debug, Deserialize)] +#[derive(Default, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub(crate) struct PhBannerView { pub image_banner_view_model: ImageView,