|
@@ -290,17 +290,35 @@ public class ItemUpdateController : BaseJellyfinApiController
|
|
|
{
|
|
|
foreach (var season in rseries.Children.OfType<Season>())
|
|
|
{
|
|
|
- season.OfficialRating = request.OfficialRating;
|
|
|
+ if (!season.LockedFields.Contains(MetadataField.OfficialRating))
|
|
|
+ {
|
|
|
+ season.OfficialRating = request.OfficialRating;
|
|
|
+ }
|
|
|
+
|
|
|
season.CustomRating = request.CustomRating;
|
|
|
- season.Tags = season.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+
|
|
|
+ if (!season.LockedFields.Contains(MetadataField.Tags))
|
|
|
+ {
|
|
|
+ season.Tags = season.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+ }
|
|
|
+
|
|
|
season.OnMetadataChanged();
|
|
|
await season.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
|
foreach (var ep in season.Children.OfType<Episode>())
|
|
|
{
|
|
|
- ep.OfficialRating = request.OfficialRating;
|
|
|
+ if (!ep.LockedFields.Contains(MetadataField.OfficialRating))
|
|
|
+ {
|
|
|
+ ep.OfficialRating = request.OfficialRating;
|
|
|
+ }
|
|
|
+
|
|
|
ep.CustomRating = request.CustomRating;
|
|
|
- ep.Tags = ep.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+
|
|
|
+ if (!ep.LockedFields.Contains(MetadataField.Tags))
|
|
|
+ {
|
|
|
+ ep.Tags = ep.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+ }
|
|
|
+
|
|
|
ep.OnMetadataChanged();
|
|
|
await ep.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
|
|
|
}
|
|
@@ -310,9 +328,18 @@ public class ItemUpdateController : BaseJellyfinApiController
|
|
|
{
|
|
|
foreach (var ep in season.Children.OfType<Episode>())
|
|
|
{
|
|
|
- ep.OfficialRating = request.OfficialRating;
|
|
|
+ if (!ep.LockedFields.Contains(MetadataField.OfficialRating))
|
|
|
+ {
|
|
|
+ ep.OfficialRating = request.OfficialRating;
|
|
|
+ }
|
|
|
+
|
|
|
ep.CustomRating = request.CustomRating;
|
|
|
- ep.Tags = ep.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+
|
|
|
+ if (!ep.LockedFields.Contains(MetadataField.Tags))
|
|
|
+ {
|
|
|
+ ep.Tags = ep.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+ }
|
|
|
+
|
|
|
ep.OnMetadataChanged();
|
|
|
await ep.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
|
|
|
}
|
|
@@ -321,9 +348,18 @@ public class ItemUpdateController : BaseJellyfinApiController
|
|
|
{
|
|
|
foreach (BaseItem track in album.Children)
|
|
|
{
|
|
|
- track.OfficialRating = request.OfficialRating;
|
|
|
+ if (!track.LockedFields.Contains(MetadataField.OfficialRating))
|
|
|
+ {
|
|
|
+ track.OfficialRating = request.OfficialRating;
|
|
|
+ }
|
|
|
+
|
|
|
track.CustomRating = request.CustomRating;
|
|
|
- track.Tags = track.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+
|
|
|
+ if (!track.LockedFields.Contains(MetadataField.Tags))
|
|
|
+ {
|
|
|
+ track.Tags = track.Tags.Concat(addedTags).Except(removedTags).Distinct().ToArray();
|
|
|
+ }
|
|
|
+
|
|
|
track.OnMetadataChanged();
|
|
|
await track.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
|
|
|
}
|