fix(plugin): address PR review feedback for sync, auth, and UI hooks
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/fafc7e2d-7464-44d7-a4e1-42f364dd0e37 Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
This commit is contained in:
co-authored by
devitq
parent
0a90c3eadf
commit
4c39020689
@@ -1,14 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Movies;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Querying;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
|
||||
@@ -59,9 +59,32 @@ public class MovieNightSyncService
|
||||
|
||||
foreach (var item in items)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
if (item is not Movie movie) continue;
|
||||
|
||||
var jellyfinItemId = movie.Id.ToString("N");
|
||||
var userStates = new List<object>();
|
||||
|
||||
foreach (var user in users)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
var userData = _userDataManager.GetUserData(user, movie);
|
||||
if (userData is null || (!userData.Played && userData.PlayCount == 0 && userData.LastPlayedDate is null && userData.Rating is null))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
userStates.Add(new
|
||||
{
|
||||
jellyfinUserId = user.Id.ToString("N"),
|
||||
isViewed = userData.Played,
|
||||
playCount = userData.PlayCount,
|
||||
lastPlayedAt = userData.LastPlayedDate,
|
||||
userRating = userData.Rating
|
||||
});
|
||||
}
|
||||
|
||||
var itemData = new Dictionary<string, object?>
|
||||
{
|
||||
@@ -74,16 +97,7 @@ public class MovieNightSyncService
|
||||
["genres"] = movie.Genres,
|
||||
["imdbId"] = movie.GetProviderId(MetadataProvider.Imdb),
|
||||
["tmdbId"] = movie.GetProviderId(MetadataProvider.Tmdb),
|
||||
["userStates"] = users.Select(u => {
|
||||
var userData = _userDataManager.GetUserData(u, movie);
|
||||
return new {
|
||||
jellyfinUserId = u.Id.ToString("N"),
|
||||
isViewed = userData?.Played ?? false,
|
||||
playCount = userData?.PlayCount ?? 0,
|
||||
lastPlayedAt = userData?.LastPlayedDate,
|
||||
userRating = userData?.Rating
|
||||
};
|
||||
}).ToList()
|
||||
["userStates"] = userStates
|
||||
};
|
||||
|
||||
syncItems.Add(itemData);
|
||||
|
||||
Reference in New Issue
Block a user