Initial commit
This commit is contained in:
46
Jellyfin.Plugin.AccurateRatings/AccurateRatingsProvider.cs
Normal file
46
Jellyfin.Plugin.AccurateRatings/AccurateRatingsProvider.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Providers;
|
||||
|
||||
namespace Jellyfin.Plugin.AccurateRatings
|
||||
{
|
||||
public class AccurateRatingsProvider : ICustomMetadataProvider<Episode>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public string Name => "AccurateRatingsProvider";
|
||||
|
||||
public Task<ItemUpdateType> FetchAsync(Episode item, MetadataRefreshOptions options, CancellationToken cancellationToken)
|
||||
{
|
||||
if (item.CommunityRating.HasValue)
|
||||
{
|
||||
decimal officialRating = (decimal)item.CommunityRating.Value;
|
||||
item.CommunityRating = (float)ConvertToAccurateRatings(officialRating);
|
||||
}
|
||||
|
||||
return Task.FromResult<ItemUpdateType>(ItemUpdateType.MetadataImport);
|
||||
}
|
||||
|
||||
public decimal ConvertToAccurateRatings(decimal imdbRating)
|
||||
{
|
||||
decimal rating = imdbRating;
|
||||
|
||||
if (rating >= 5.0m && rating <= 9.4m)
|
||||
{
|
||||
return rating - 5.0m;
|
||||
}
|
||||
|
||||
if (rating >= 9.5m)
|
||||
{
|
||||
return 5.0m;
|
||||
}
|
||||
|
||||
return 0.0m;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user