fix: jellyfin 10.11.0 compatibility

This commit is contained in:
Aryan Kothari 2025-10-20 15:40:10 -04:00
parent eacbdd6f88
commit 1c3b0f3c24
5 changed files with 33 additions and 36 deletions

View File

@ -188,7 +188,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata
var user = _userManager.GetUserById(eventArgs.UserId);
if (Configuration.JFTASync && user != null && Configuration.GetJFUsernamesToArray().Contains(user!.Username))
{
var isPlayed = eventArgs.Item.IsPlayed(user);
var isPlayed = eventArgs.Item.IsPlayed(user, null);
Logger.LogDebug("User {UserId} changed watched status to {Status} for the item {ItemName}", eventArgs.UserId, isPlayed, eventArgs.Item.Name);
string itemYTId;
try
@ -222,12 +222,15 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata
if (eventArgs.Item is Episode)
{
var progress = _userDataManager.GetUserData(user, eventArgs.Item).PlaybackPositionTicks / TimeSpan.TicksPerSecond;
var videoId = Utils.GetVideoNameFromPath(eventArgs.Item.Path);
statusCode = await TubeArchivistApi.GetInstance().SetProgress(videoId, progress).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
var progress = _userDataManager.GetUserData(user, eventArgs.Item)?.PlaybackPositionTicks / TimeSpan.TicksPerSecond;
if (progress != null)
{
Logger.LogCritical("{Message}", $"POST /video/{videoId}/progress returned {statusCode} for video {eventArgs.Item.Name} with progress {progress} seconds");
var videoId = Utils.GetVideoNameFromPath(eventArgs.Item.Path);
statusCode = await TubeArchivistApi.GetInstance().SetProgress(videoId, progress.Value).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
{
Logger.LogCritical("{Message}", $"POST /video/{videoId}/progress returned {statusCode} for video {eventArgs.Item.Name} with progress {progress} seconds");
}
}
}
}

View File

@ -59,12 +59,6 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Providers
if (video != null)
{
var peopleInfo = new List<PersonInfo>();
PeopleHelper.AddPerson(peopleInfo, new PersonInfo
{
Name = video.Channel.Name,
ImageUrl = video.Channel.ThumbUrl,
Type = Data.Enums.PersonKind.Actor,
});
result.HasMetadata = true;
result.Item = video.ToEpisode();
result.Provider = Name;

View File

@ -58,12 +58,6 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Providers
if (channel != null)
{
var peopleInfo = new List<PersonInfo>();
PeopleHelper.AddPerson(peopleInfo, new PersonInfo
{
Name = channel.Name,
ImageUrl = channel.ThumbUrl,
Type = Data.Enums.PersonKind.Actor,
});
result.HasMetadata = true;
result.Item = channel.ToSeries();
result.Provider = Name;

View File

@ -72,12 +72,12 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
return;
}
var collectionItem = _libraryManager.GetItemList(new InternalItemsQuery
var items = _libraryManager.GetItemList(new InternalItemsQuery
{
Name = Plugin.Instance?.Configuration.CollectionTitle,
IncludeItemTypes = new[] { BaseItemKind.CollectionFolder }
}).FirstOrDefault();
});
var collectionItem = items.Count > 0 ? items[0] : null;
if (collectionItem == null)
{
var message = $"Collection '{Plugin.Instance?.Configuration.CollectionTitle}' not found.";
@ -154,9 +154,9 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
_logger.LogDebug("{VideoYtId}", videoYTId);
HttpStatusCode statusCode;
if (!isChannelCheckedForWatched && channel.IsPlayed(user))
if (!isChannelCheckedForWatched && channel.IsPlayed(user, null))
{
var isChannelPlayed = channel.IsPlayed(user);
var isChannelPlayed = channel.IsPlayed(user, null);
statusCode = await taApi.SetWatchedStatus(channelYTId, isChannelPlayed).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
{
@ -172,7 +172,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
if (!isChannelWatched)
{
var isVideoPlayed = video.IsPlayed(user);
var isVideoPlayed = video.IsPlayed(user, null);
statusCode = await taApi.SetWatchedStatus(videoYTId, isVideoPlayed).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
{
@ -182,11 +182,14 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
_logger.LogDebug("{Message}", isVideoPlayed);
if (!isVideoPlayed)
{
var playbackProgress = _userDataManager.GetUserData(user, video).PlaybackPositionTicks / TimeSpan.TicksPerSecond;
statusCode = await taApi.SetProgress(videoYTId, playbackProgress).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
var playbackProgress = _userDataManager.GetUserData(user, video)?.PlaybackPositionTicks / TimeSpan.TicksPerSecond;
if (playbackProgress != null)
{
_logger.LogCritical("{Message}", $"POST /video/{videoYTId}/progress returned {statusCode} for video {video.Name} with progress {progress} seconds");
statusCode = await taApi.SetProgress(videoYTId, playbackProgress.Value).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
{
_logger.LogCritical("{Message}", $"POST /video/{videoYTId}/progress returned {statusCode} for video {video.Name} with progress {progress} seconds");
}
}
}
}
@ -215,7 +218,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
[
new TaskTriggerInfo
{
Type = TaskTriggerInfo.TriggerStartup,
Type = TaskTriggerInfoType.StartupTrigger,
},
];
}

View File

@ -72,11 +72,13 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
continue;
}
var collectionItem = _libraryManager.GetItemList(new InternalItemsQuery
var items = _libraryManager.GetItemList(new InternalItemsQuery
{
Name = Plugin.Instance?.Configuration.CollectionTitle,
IncludeItemTypes = new[] { BaseItemKind.CollectionFolder }
}).FirstOrDefault();
});
var collectionItem = items.Count > 0 ? items[0] : null;
if (collectionItem == null)
{
@ -127,11 +129,12 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
continue;
}
var collectionItem = _libraryManager.GetItemList(new InternalItemsQuery
var items = _libraryManager.GetItemList(new InternalItemsQuery
{
Name = Plugin.Instance?.Configuration.CollectionTitle,
IncludeItemTypes = new[] { BaseItemKind.CollectionFolder }
}).FirstOrDefault();
});
var collectionItem = items.Count > 0 ? items[0] : null;
if (collectionItem == null)
{
@ -185,8 +188,8 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
}
_userDataManager.SaveUserData(user, video, userUpdateData, UserDataSaveReason.UpdateUserData);
_logger.LogDebug("{Message}", $"Playback progress for video {video.Name} set to {userItemData.PlaybackPositionTicks / TimeSpan.TicksPerSecond} seconds for user {jfUsername}.");
_logger.LogDebug("{Message}", $"Watched status for video {video.Name} set to {userItemData.Played} seconds for user {jfUsername}.");
_logger.LogDebug("{Message}", $"Playback progress for video {video.Name} set to {userItemData?.PlaybackPositionTicks / TimeSpan.TicksPerSecond} seconds for user {jfUsername}.");
_logger.LogDebug("{Message}", $"Watched status for video {video.Name} set to {userItemData?.Played} seconds for user {jfUsername}.");
processedVideosCount++;
progress.Report(processedVideosCount * 100 / videosCount);
@ -214,7 +217,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
[
new TaskTriggerInfo
{
Type = TaskTriggerInfo.TriggerInterval,
Type = TaskTriggerInfoType.IntervalTrigger,
IntervalTicks = TimeSpan.FromSeconds(Plugin.Instance!.Configuration.TAJFTaskInterval).Ticks
},
];