Move TA DTOs to specific category folders and add Player field to Video
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
using System;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A class representing TubeArchivist API video player data.
|
||||||
|
/// </summary>
|
||||||
|
public class Player
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Player"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="duration">Duration of the video.</param>
|
||||||
|
/// <param name="isWatched">Whether the video is marked as watched.</param>
|
||||||
|
/// <param name="watchedUnixTime">Unix time of when the video has been marked watched.</param>
|
||||||
|
public Player(long duration, bool isWatched, long watchedUnixTime)
|
||||||
|
{
|
||||||
|
Duration = duration;
|
||||||
|
IsWatched = isWatched;
|
||||||
|
WatchedUnixTime = watchedUnixTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the duration of the video.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty(PropertyName = "duration")]
|
||||||
|
public long Duration { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a value indicating whether the video is marked as watched.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty(PropertyName = "watched")]
|
||||||
|
public bool IsWatched { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the Unix date and time when the video has been marked as watched.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty(PropertyName = "watched_date")]
|
||||||
|
public long WatchedUnixTime { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the date and time when the video has been marked as watched.
|
||||||
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
|
public DateTime WatchedTime
|
||||||
|
{
|
||||||
|
get => DateTimeOffset.FromUnixTimeSeconds(WatchedUnixTime).DateTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+10
-1
@@ -27,6 +27,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
|
|||||||
/// <param name="published">Video published date.</param>
|
/// <param name="published">Video published date.</param>
|
||||||
/// <param name="vidThumbUrl">Video thuumb image URL.</param>
|
/// <param name="vidThumbUrl">Video thuumb image URL.</param>
|
||||||
/// <param name="youtubeId">Video YouTube id.</param>
|
/// <param name="youtubeId">Video YouTube id.</param>
|
||||||
|
/// <param name="player">Player info.</param>
|
||||||
public Video(
|
public Video(
|
||||||
Channel channel,
|
Channel channel,
|
||||||
Collection<string> tags,
|
Collection<string> tags,
|
||||||
@@ -34,7 +35,8 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
|
|||||||
string description,
|
string description,
|
||||||
DateTime published,
|
DateTime published,
|
||||||
string vidThumbUrl,
|
string vidThumbUrl,
|
||||||
string youtubeId)
|
string youtubeId,
|
||||||
|
Player player)
|
||||||
{
|
{
|
||||||
this.Channel = channel;
|
this.Channel = channel;
|
||||||
this.Tags = tags;
|
this.Tags = tags;
|
||||||
@@ -43,6 +45,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
|
|||||||
this.Published = published;
|
this.Published = published;
|
||||||
this.VidThumbUrl = vidThumbUrl;
|
this.VidThumbUrl = vidThumbUrl;
|
||||||
this.YoutubeId = youtubeId;
|
this.YoutubeId = youtubeId;
|
||||||
|
Player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -88,6 +91,12 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
|
|||||||
[JsonProperty(PropertyName = "youtube_id")]
|
[JsonProperty(PropertyName = "youtube_id")]
|
||||||
public string YoutubeId { get; set; }
|
public string YoutubeId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Getsthe player related info.
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty(PropertyName = "player")]
|
||||||
|
public Player Player { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Converts the TubeArchivist API video to a Jellyfin <see cref="RemoteSearchResult"/> object.
|
/// Converts the TubeArchivist API video to a Jellyfin <see cref="RemoteSearchResult"/> object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Reference in New Issue
Block a user