Support image position update

This commit is contained in:
xjasonlyu
2022-05-30 17:45:59 +08:00
parent 61158456fc
commit beec329284
4 changed files with 53 additions and 5 deletions

View File

@@ -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;
}
}

View File

@@ -16,4 +16,7 @@ public class ProviderInfoModel : ProviderModel
public class ProviderIdModel : ProviderModel
{
[JsonIgnore] public double? Position { get; set; }
[JsonIgnore] public bool? UpdateInfo { get; set; }
}

View File

@@ -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()
{

View File

@@ -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);
}