aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2023-01-26 09:06:58 +0100
committerGitHub <noreply@github.com>2023-01-26 09:06:58 +0100
commitc2e4099a1fa99b939997b813a3e0724f0724149b (patch)
tree8a8f1f30862f6c4fcfed193ef83e11156de4cdee
parentf3e04aca45456da97538a3df7c81bd2fe045ffc1 (diff)
parentffc4cc4a0472989f96d62d9082b5b3a4fd56fbac (diff)
Merge pull request #9176 from ProfessionalismIsMyMiddleName/master
fixes https://github.com/jellyfin/jellyfin/issues/8415 Fixes https://github.com/jellyfin/jellyfin/issues/8415
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs22
1 files changed, 13 insertions, 9 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index 96c512a46..c3a735c6d 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -266,11 +266,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
var nfoConfiguration = _config.GetNfoConfiguration();
UserItemData? userData = null;
- if (!string.IsNullOrWhiteSpace(nfoConfiguration.UserId))
- {
- var user = _userManager.GetUserById(Guid.Parse(nfoConfiguration.UserId));
- userData = _userDataManager.GetUserData(user, item);
- }
switch (reader.Name)
{
@@ -370,9 +365,12 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var val = reader.ReadElementContentAsBoolean();
- if (userData is not null)
+ if (!string.IsNullOrWhiteSpace(nfoConfiguration.UserId))
{
+ var user = _userManager.GetUserById(Guid.Parse(nfoConfiguration.UserId));
+ userData = _userDataManager.GetUserData(user, item);
userData.Played = val;
+ _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None);
}
break;
@@ -381,11 +379,14 @@ namespace MediaBrowser.XbmcMetadata.Parsers
case "playcount":
{
var val = reader.ReadElementContentAsString();
- if (!string.IsNullOrWhiteSpace(val) && userData is not null)
+ if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(nfoConfiguration.UserId))
{
if (int.TryParse(val, NumberStyles.Integer, CultureInfo.InvariantCulture, out var count))
{
+ var user = _userManager.GetUserById(Guid.Parse(nfoConfiguration.UserId));
+ userData = _userDataManager.GetUserData(user, item);
userData.PlayCount = count;
+ _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None);
}
}
@@ -395,12 +396,15 @@ namespace MediaBrowser.XbmcMetadata.Parsers
case "lastplayed":
{
var val = reader.ReadElementContentAsString();
- if (!string.IsNullOrWhiteSpace(val) && userData is not null)
+ if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(nfoConfiguration.UserId))
{
if (DateTime.TryParse(val, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal, out var added))
{
+ var user = _userManager.GetUserById(Guid.Parse(nfoConfiguration.UserId));
+ userData = _userDataManager.GetUserData(user, item);
userData.LastPlayedDate = added;
- }
+ _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None);
+ }
else
{
Logger.LogWarning("Invalid lastplayed value found: {Value}", val);