From 630ea5960fded5314e97de9f6277037a80739330 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Fri, 10 Mar 2023 19:04:27 +0100 Subject: [PATCH] fix: add model conversion, generic string arg --- src/client/video_details.rs | 8 +++++--- src/model/convert.rs | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/client/video_details.rs b/src/client/video_details.rs index 732827f..2749d5c 100644 --- a/src/client/video_details.rs +++ b/src/client/video_details.rs @@ -29,7 +29,8 @@ struct QVideo<'a> { impl RustyPipeQuery { /// Get the metadata for a video - pub async fn video_details(&self, video_id: &str) -> Result { + pub async fn video_details>(&self, video_id: S) -> Result { + let video_id = video_id.as_ref(); let context = self.get_context(ClientType::Desktop, true, None).await; let request_body = QVideo { context, @@ -49,11 +50,12 @@ impl RustyPipeQuery { } /// Get the comments for a video using the continuation token obtained from `rusty_pipe_query.video_details()` - pub async fn video_comments( + pub async fn video_comments>( &self, - ctoken: &str, + ctoken: S, visitor_data: Option<&str>, ) -> Result, Error> { + let ctoken = ctoken.as_ref(); let context = self .get_context(ClientType::Desktop, true, visitor_data) .await; diff --git a/src/model/convert.rs b/src/model/convert.rs index ddfe25d..2ba8305 100644 --- a/src/model/convert.rs +++ b/src/model/convert.rs @@ -1,7 +1,7 @@ use super::{ - AlbumItem, ArtistId, ArtistItem, Channel, ChannelId, ChannelItem, ChannelTag, MusicArtist, - MusicItem, MusicPlaylistItem, PlaylistItem, PlaylistVideo, TrackItem, VideoId, VideoItem, - YouTubeItem, + AlbumItem, ArtistId, ArtistItem, Channel, ChannelId, ChannelItem, ChannelRssVideo, ChannelTag, + MusicArtist, MusicItem, MusicPlaylistItem, PlaylistItem, PlaylistVideo, TrackItem, VideoId, + VideoItem, YouTubeItem, }; /// Trait for casting generic YouTube/YouTube music items to a specific kind. @@ -168,6 +168,15 @@ impl From for VideoId { } } +impl From for VideoId { + fn from(video: ChannelRssVideo) -> Self { + Self { + id: video.id, + name: video.name, + } + } +} + impl From for VideoId { fn from(track: TrackItem) -> Self { Self {