mirror of
https://github.com/metatube-community/jellyfin-plugin-metatube.git
synced 2026-07-17 03:50:42 +08:00
Support image position update
This commit is contained in:
@@ -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<string>
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -16,4 +16,7 @@ public class ProviderInfoModel : ProviderModel
|
||||
|
||||
public class ProviderIdModel : ProviderModel
|
||||
{
|
||||
[JsonIgnore] public double? Position { get; set; }
|
||||
|
||||
[JsonIgnore] public bool? UpdateInfo { get; set; }
|
||||
}
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -73,7 +73,8 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider<Movie, MovieI
|
||||
result.Item.SetProviderIdModel(Name, new ProviderIdModel
|
||||
{
|
||||
Provider = m.Provider,
|
||||
Id = m.Id
|
||||
Id = m.Id,
|
||||
Position = pid.Position
|
||||
});
|
||||
|
||||
// Set studios: maker > publisher.
|
||||
@@ -135,7 +136,8 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider<Movie, MovieI
|
||||
result.SetProviderIdModel(Name, new ProviderIdModel
|
||||
{
|
||||
Provider = m.Provider,
|
||||
Id = m.Id
|
||||
Id = m.Id,
|
||||
Position = pid.Position
|
||||
});
|
||||
results.Add(result);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user