diff --git a/Jellyfin.Plugin.JavTube/Extensions/ProviderIdsExtension.cs b/Jellyfin.Plugin.JavTube/Extensions/ProviderIdsExtension.cs index 6f01c13..39c6515 100644 --- a/Jellyfin.Plugin.JavTube/Extensions/ProviderIdsExtension.cs +++ b/Jellyfin.Plugin.JavTube/Extensions/ProviderIdsExtension.cs @@ -16,12 +16,55 @@ internal static class ProviderIdsExtension return new ProviderIdModel { Provider = providerIds?.Length > 1 ? providerIds[0] : string.Empty, - Id = providerIds?.Length > 1 ? providerIds[1] : string.Empty + Id = providerIds?.Length > 1 ? providerIds[1] : string.Empty, + Position = providerIds?.Length > 2 ? ParseDouble(providerIds[2]) : null, + UpdateInfo = providerIds?.Length > 3 ? ParseBool(providerIds[3]) : null }; } public static void SetProviderIdModel(this IHasProviderIds instance, string name, ProviderIdModel pid) { - instance.SetProviderId(name, string.Join(Separator, pid.Provider, pid.Id)); + var values = new List + { + pid.Provider, pid.Id + }; + if (pid.Position.HasValue) values.Add(pid.Position.ToString()); + if (pid.UpdateInfo.HasValue) values.Add(pid.UpdateInfo.ToString()); + instance.SetProviderId(name, string.Join(Separator, values)); + } + + private static double? ParseDouble(string s) + { + try + { + return double.Parse(s); + } + catch (Exception) + { + return null; + } + } + + private static bool? ParseBool(string s) + { + switch (s) + { + case "1": + case "t": + case "T": + case "true": + case "True": + case "TRUE": + return true; + case "0": + case "f": + case "F": + case "false": + case "False": + case "FALSE": + return false; + } + + return null; } } \ No newline at end of file diff --git a/Jellyfin.Plugin.JavTube/Models/ProviderModel.cs b/Jellyfin.Plugin.JavTube/Models/ProviderModel.cs index 2931208..243d0b9 100644 --- a/Jellyfin.Plugin.JavTube/Models/ProviderModel.cs +++ b/Jellyfin.Plugin.JavTube/Models/ProviderModel.cs @@ -16,4 +16,7 @@ public class ProviderInfoModel : ProviderModel public class ProviderIdModel : ProviderModel { + [JsonIgnore] public double? Position { get; set; } + + [JsonIgnore] public bool? UpdateInfo { get; set; } } \ No newline at end of file diff --git a/Jellyfin.Plugin.JavTube/Providers/MovieImageProvider.cs b/Jellyfin.Plugin.JavTube/Providers/MovieImageProvider.cs index 9c0995b..b2fd538 100644 --- a/Jellyfin.Plugin.JavTube/Providers/MovieImageProvider.cs +++ b/Jellyfin.Plugin.JavTube/Providers/MovieImageProvider.cs @@ -47,7 +47,7 @@ public class ImageProvider : BaseProvider, IRemoteImageProvider, IHasOrder { ProviderName = Name, Type = ImageType.Primary, - Url = ApiClient.GetPrimaryImageApiUrl(m.Id, m.Provider) + Url = ApiClient.GetPrimaryImageApiUrl(m.Id, m.Provider, pid.Position ?? -1) }, new() { diff --git a/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs b/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs index 29e6f8c..e2d6a3a 100644 --- a/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs +++ b/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs @@ -73,7 +73,8 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider publisher. @@ -135,7 +136,8 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider