From cc280169844db076cb31d708f976f27d53163cbf Mon Sep 17 00:00:00 2001 From: DarkFighterLuke Date: Mon, 26 Aug 2024 18:11:06 +0200 Subject: [PATCH] Create progress TA API DTO --- .../TubeArchivist/Progress.cs | 53 +++++++++++++++++++ .../TubeArchivist/TubeArchivistApi.cs | 7 +-- 2 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/Progress.cs diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/Progress.cs b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/Progress.cs new file mode 100644 index 0000000..d4e6ce7 --- /dev/null +++ b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/Progress.cs @@ -0,0 +1,53 @@ +using Newtonsoft.Json; + +namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist +{ + /// + /// A class representing TubeArchivist API video progress data. + /// + public class Progress + { + /// + /// Initializes a new instance of the class. + /// + /// Playback progress in seconds. + /// Video YouTube id. + /// Playback progress user id. + public Progress( + long position, + string? youtubeId, + long? userId) + { + YoutubeId = youtubeId; + UserId = userId; + Position = position; + } + + /// + /// Initializes a new instance of the class. + /// + /// Playback progress in seconds. + public Progress(long position) + { + Position = position; + } + + /// + /// Gets or sets the video YouTube id. + /// + [JsonProperty(PropertyName = "youtube_id")] + public string? YoutubeId { get; set; } + + /// + /// Gets or sets playback progress user id. + /// + [JsonProperty(PropertyName = "user_id")] + public long? UserId { get; set; } + + /// + /// Gets or sets video playback progress (in seconds). + /// + [JsonProperty(PropertyName = "position")] + public long Position { get; set; } + } +} diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs index ce7565e..294bacf 100644 --- a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs +++ b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs @@ -159,12 +159,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist { var progressEndpoint = $"/api/video/{videoId}/progress/"; var url = new Uri(Utils.SanitizeUrl(Plugin.Instance!.Configuration.TubeArchivistUrl + progressEndpoint)); - var body = JsonConvert.SerializeObject(new - { - position = progress - }); - - var sc = new StringContent(body, Encoding.UTF8, "application/json"); + var body = JsonConvert.SerializeObject(new Progress(progress)); var response = await client.PostAsync(url, new StringContent(body, Encoding.UTF8, "application/json")).ConfigureAwait(true);