Support individual chapters as filler (#2208)
* Use chapters in duration filler * add new option, migrations, and update filler preset editor * Revert "Use chapters in duration filler" This reverts commit d87a8a240a78c1cbca7b311125f8d3a84645d296. * scaffold splitting filler by chapter * implement chapters as filler * update changelog * re-add migrations * Add duration for ChapterMediaItem --------- Co-authored-by: Jason Dove <1695733+jasongdove@users.noreply.github.com>
This commit is contained in:
co-authored by
Jason Dove
parent
8b12ee459a
commit
48f93b8af8
@@ -209,6 +209,17 @@
|
||||
</MudSelect>
|
||||
</MudStack>
|
||||
}
|
||||
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
|
||||
<div class="d-flex">
|
||||
<MudText>Use Chapters As Media Items</MudText>
|
||||
</div>
|
||||
<MudCheckBox @bind-Value="@_model.UseChaptersAsMediaItems"
|
||||
For="@(() => _model.UseChaptersAsMediaItems)"
|
||||
Dense="true"
|
||||
Disabled="@(_model.FillerKind is FillerKind.Fallback)">
|
||||
<MudText Typo="Typo.caption" Style="font-weight: normal">Schedule individual chapters instead of entire files</MudText>
|
||||
</MudCheckBox>
|
||||
</MudStack>
|
||||
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
|
||||
<div class="d-flex">
|
||||
<MudText>Expression</MudText>
|
||||
@@ -313,6 +324,7 @@
|
||||
? _televisionShows.Append(_televisionSeasons).Append(_artists).ToList().Find(vm => vm.MediaItemId == fillerPreset.MediaItemId.Value)
|
||||
: null;
|
||||
_model.Expression = fillerPreset.Expression;
|
||||
_model.UseChaptersAsMediaItems = fillerPreset.UseChaptersAsMediaItems;
|
||||
_model.Playlist = fillerPreset.Playlist;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -25,6 +25,9 @@ public class FillerPresetEditViewModelValidator : AbstractValidator<FillerPreset
|
||||
When(
|
||||
fp => fp.FillerMode == FillerMode.Pad,
|
||||
() => RuleFor(fp => fp.PadToNearestMinute).NotNull());
|
||||
When(
|
||||
fp => fp.FillerKind is FillerKind.Fallback,
|
||||
() => RuleFor(fp => fp.UseChaptersAsMediaItems).NotEqual(true));
|
||||
|
||||
When(
|
||||
fp => fp.CollectionType == ProgramScheduleItemCollectionType.Collection,
|
||||
|
||||
@@ -35,6 +35,11 @@ public class FillerPresetEditViewModel
|
||||
{
|
||||
Expression = string.Empty;
|
||||
}
|
||||
|
||||
if (_fillerKind is FillerKind.Fallback)
|
||||
{
|
||||
UseChaptersAsMediaItems = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +98,8 @@ public class FillerPresetEditViewModel
|
||||
|
||||
public string Expression { get; set; }
|
||||
|
||||
public bool UseChaptersAsMediaItems { get; set; }
|
||||
|
||||
public IRequest<Either<BaseError, Unit>> ToEdit() =>
|
||||
new UpdateFillerPreset(
|
||||
Id,
|
||||
@@ -109,7 +116,8 @@ public class FillerPresetEditViewModel
|
||||
MultiCollection?.Id,
|
||||
SmartCollection?.Id,
|
||||
Playlist?.Id,
|
||||
Expression);
|
||||
Expression,
|
||||
UseChaptersAsMediaItems);
|
||||
|
||||
public IRequest<Either<BaseError, Unit>> ToUpdate() =>
|
||||
new CreateFillerPreset(
|
||||
@@ -126,7 +134,8 @@ public class FillerPresetEditViewModel
|
||||
MultiCollection?.Id,
|
||||
SmartCollection?.Id,
|
||||
Playlist?.Id,
|
||||
Expression);
|
||||
Expression,
|
||||
UseChaptersAsMediaItems);
|
||||
|
||||
private static TimeSpan FixDuration(TimeSpan duration) =>
|
||||
duration > TimeSpan.FromDays(1) ? duration.Subtract(TimeSpan.FromDays(1)) : duration;
|
||||
|
||||
Reference in New Issue
Block a user