Compare commits

...

12 Commits

Author SHA1 Message Date
DarkFighterLuke ffac6e7645 Update version 2025-11-13 20:31:10 +01:00
DarkFighterLuke f6f6bbf978 Merge pull request #73 from Jurrer/fix-on-watched-status-changed
fix condition for onWatchedStatusChanged
2025-11-13 20:27:36 +01:00
DarkFighterLuke 75c2fce017 Merge branch 'master' into fix-on-watched-status-changed 2025-11-13 20:27:29 +01:00
DarkFighterLuke 3c08e3c70c Merge pull request #72 from Jurrer/check-TA-video-status-before-syncing-to-TA
Check TA watched status before syncing to TA
2025-11-13 20:27:09 +01:00
DarkFighterLuke d5c706b833 Merge branch 'master' into check-TA-video-status-before-syncing-to-TA 2025-11-13 20:26:59 +01:00
DarkFighterLuke ad4fb92577 Merge pull request #71 from Jurrer/fix-watch-status-sync-to-TA-itemdata
fix video watch status sync to TA IsPlayed method
2025-11-13 20:26:44 +01:00
DarkFighterLuke 8aec7f804d Merge branch 'master' into fix-watch-status-sync-to-TA-itemdata 2025-11-13 20:26:29 +01:00
Jurrer 4c3de5146b collection name + user name check to OnWatchedStatusChange 2025-11-13 00:55:18 +01:00
Jurrer 1ce6587078 fix condition for onWatchedStatusChanged 2025-11-10 00:39:47 +01:00
Jurrer 7942e89341 check TA video status before syncing to TA 2025-11-09 05:33:05 +01:00
Jurrer 764dc8f326 fix video watch status sync to TA IsPlayed method 2025-11-09 03:17:39 +01:00
DarkFighterLuke af8a02d289 Update manifest.json
Signed-off-by: DarkFighterLuke <DarkFighterLuke@users.noreply.github.com>
2025-10-23 20:27:36 +00:00
5 changed files with 42 additions and 17 deletions
+3 -3
View File
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<Version>1.4.2.0</Version>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<FileVersion>1.4.2.0</FileVersion>
<Version>1.4.3.0</Version>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<FileVersion>1.4.3.0</FileVersion>
</PropertyGroup>
</Project>
@@ -191,17 +191,21 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata
var topParent = eventArgs.Item.GetTopParent();
var user = _userManager.GetUserById(eventArgs.UserId);
if (
Configuration.JFTAProgressSync &&
user != null &&
Configuration.GetJFUsernamesToArray().Contains(user!.Username) &&
string.Equals(topParent?.Name, Instance?.Configuration.CollectionTitle, StringComparison.OrdinalIgnoreCase)
Configuration.JFTAProgressSync
&& user == null
&& string.Equals(topParent?.Name, Instance?.Configuration.CollectionTitle, StringComparison.OrdinalIgnoreCase)
)
{
Logger.LogError("OnWatchedStatusChange callback called without user id for item {ItemName}", eventArgs.Item.Name);
return;
}
if (Configuration.JFTAProgressSync && user != null && Configuration.GetJFUsernamesToArray().Contains(user!.Username))
if (
Configuration.JFTAProgressSync
&& user != null
&& string.Equals(Configuration.JFUsernameFrom, user!.Username, StringComparison.Ordinal)
&& string.Equals(topParent?.Name, Instance?.Configuration.CollectionTitle, StringComparison.OrdinalIgnoreCase)
)
{
var userItemData = _userDataManager.GetUserData(user, eventArgs.Item);
var isPlayed = eventArgs.Item.IsPlayed(user, userItemData);
@@ -155,11 +155,11 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
var videoYTId = Utils.GetVideoNameFromPath(video.Path);
_logger.LogDebug("Current video extracted YouTube id: {VideoYtId}", videoYTId);
HttpStatusCode statusCode;
var userItemData = _userDataManager.GetUserData(user, channel);
var channelItemData = _userDataManager.GetUserData(user, channel);
if (!isChannelCheckedForWatched && channel.IsPlayed(user, userItemData))
if (!isChannelCheckedForWatched && channel.IsPlayed(user, channelItemData))
{
var isChannelPlayed = channel.IsPlayed(user, userItemData);
var isChannelPlayed = channel.IsPlayed(user, channelItemData);
statusCode = await taApi.SetWatchedStatus(channelYTId, isChannelPlayed).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
{
@@ -173,13 +173,26 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.Tasks
isChannelCheckedForWatched = true;
}
var videoItemData = _userDataManager.GetUserData(user, video);
if (!isChannelWatched)
{
var isVideoPlayed = video.IsPlayed(user, userItemData);
statusCode = await taApi.SetWatchedStatus(videoYTId, isVideoPlayed).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
var isVideoPlayed = video.IsPlayed(user, videoItemData);
var taVideo = await taApi.GetVideo(videoYTId).ConfigureAwait(true);
if (taVideo != null)
{
_logger.LogCritical("{Message}", $"POST /watched returned {statusCode} for video {video.Name} ({videoYTId}) with wacthed status {isVideoPlayed}");
var isTAVideoPlayed = taVideo?.Player.IsWatched ?? false;
if (isTAVideoPlayed != isVideoPlayed)
{
statusCode = await taApi.SetWatchedStatus(videoYTId, isVideoPlayed).ConfigureAwait(true);
if (statusCode != System.Net.HttpStatusCode.OK)
{
_logger.LogCritical("{Message}", $"POST /watched returned {statusCode} for video {video.Name} ({videoYTId}) with wacthed status {isVideoPlayed}");
}
else
{
_logger.LogInformation("Video {VideoId} watch status marked as {Status} in TubeArchivist", videoYTId, isVideoPlayed);
}
}
}
_logger.LogDebug("{Message}", isVideoPlayed);
+2 -2
View File
@@ -2,7 +2,7 @@
name: "TubeArchivistMetadata"
guid: "dc97d0c6-28b0-4242-afb4-5833ae1b3715"
imageUrl: https://raw.githubusercontent.com/tubearchivist/tubearchivist-jf-plugin/master/images/logo.png
version: "1.4.2.0"
version: "1.4.3.0"
targetAbi: "10.11.0.0"
framework: "net9.0"
overview: "Metadata for your TubeArchivist library on Jellyfin"
@@ -14,4 +14,4 @@ owner: "DarkFighterLuke"
artifacts:
- "Jellyfin.Plugin.TubeArchivistMetadata.dll"
changelog: >
Introduce episode numbering alternative schema
Fix JF->TA watched status sync
+8
View File
@@ -8,6 +8,14 @@
"overview": "Metadata for your TubeArchivist library on Jellyfin",
"imageUrl": "https://raw.githubusercontent.com/tubearchivist/tubearchivist-jf-plugin/master/images/logo.png",
"versions": [
{
"version": "1.4.2.0",
"changelog": "Introduce episode numbering alternative schema\n",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.4.2/tubearchivistmetadata_1.4.2.0.zip",
"checksum": "8df142d2f1f0c0dffa302a567b40ef84",
"timestamp": "2025-10-23T20:27:32Z"
},
{
"version": "1.4.1.0",
"changelog": "Introduce bidirectional playlists synchronization\n",