Merge pull request #9176 from ProfessionalismIsMyMiddleName/master

fixes https://github.com/jellyfin/jellyfin/issues/8415
Fixes https://github.com/jellyfin/jellyfin/issues/8415
This commit is contained in:
Bond-009 2023-01-26 09:06:58 +01:00 committed by GitHub
commit c2e4099a1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -266,11 +266,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
var nfoConfiguration = _config.GetNfoConfiguration(); var nfoConfiguration = _config.GetNfoConfiguration();
UserItemData? userData = null; UserItemData? userData = null;
if (!string.IsNullOrWhiteSpace(nfoConfiguration.UserId))
{
var user = _userManager.GetUserById(Guid.Parse(nfoConfiguration.UserId));
userData = _userDataManager.GetUserData(user, item);
}
switch (reader.Name) switch (reader.Name)
{ {
@ -370,9 +365,12 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{ {
var val = reader.ReadElementContentAsBoolean(); 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; userData.Played = val;
_userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None);
} }
break; break;
@ -381,11 +379,14 @@ namespace MediaBrowser.XbmcMetadata.Parsers
case "playcount": case "playcount":
{ {
var val = reader.ReadElementContentAsString(); 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)) 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; userData.PlayCount = count;
_userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None);
} }
} }
@ -395,11 +396,14 @@ namespace MediaBrowser.XbmcMetadata.Parsers
case "lastplayed": case "lastplayed":
{ {
var val = reader.ReadElementContentAsString(); 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)) 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; userData.LastPlayedDate = added;
_userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None);
} }
else else
{ {