update keep up to deletion

pull/1154/head
Luke Pulverenti 7 years ago
parent 8eb4c034b4
commit eedf62d80d

@ -219,7 +219,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
if (string.Equals(collectionType, CollectionType.MusicVideos, StringComparison.OrdinalIgnoreCase)) if (string.Equals(collectionType, CollectionType.MusicVideos, StringComparison.OrdinalIgnoreCase))
{ {
return FindMovie<MusicVideo>(args.Path, args.Parent, files, args.DirectoryService, collectionType, false); return FindMovie<MusicVideo>(args.Path, args.Parent, files, args.DirectoryService, collectionType, true);
} }
if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase)) if (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase))

@ -39,6 +39,7 @@ using MediaBrowser.Model.FileOrganization;
using MediaBrowser.Model.System; using MediaBrowser.Model.System;
using MediaBrowser.Model.Threading; using MediaBrowser.Model.Threading;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Querying;
namespace Emby.Server.Implementations.LiveTv.EmbyTV namespace Emby.Server.Implementations.LiveTv.EmbyTV
{ {
@ -1512,7 +1513,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
_timerProvider.AddOrUpdate(timer, false); _timerProvider.AddOrUpdate(timer, false);
SaveRecordingMetadata(timer, recordPath, seriesPath); SaveRecordingMetadata(timer, recordPath, seriesPath);
EnforceKeepUpTo(timer); EnforceKeepUpTo(timer, seriesPath);
}; };
await recorder.Record(mediaStreamInfo, recordPath, duration, onStarted, cancellationToken) await recorder.Record(mediaStreamInfo, recordPath, duration, onStarted, cancellationToken)
@ -1583,12 +1584,16 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
}, _logger); }, _logger);
} }
private async void EnforceKeepUpTo(TimerInfo timer) private async void EnforceKeepUpTo(TimerInfo timer, string seriesPath)
{ {
if (string.IsNullOrWhiteSpace(timer.SeriesTimerId)) if (string.IsNullOrWhiteSpace(timer.SeriesTimerId))
{ {
return; return;
} }
if (string.IsNullOrWhiteSpace(seriesPath))
{
return;
}
var seriesTimerId = timer.SeriesTimerId; var seriesTimerId = timer.SeriesTimerId;
var seriesTimer = _seriesTimerProvider.GetAll().FirstOrDefault(i => string.Equals(i.Id, seriesTimerId, StringComparison.OrdinalIgnoreCase)); var seriesTimer = _seriesTimerProvider.GetAll().FirstOrDefault(i => string.Equals(i.Id, seriesTimerId, StringComparison.OrdinalIgnoreCase));
@ -1621,6 +1626,43 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
.ToList(); .ToList();
await DeleteLibraryItemsForTimers(timersToDelete).ConfigureAwait(false); await DeleteLibraryItemsForTimers(timersToDelete).ConfigureAwait(false);
var librarySeries = _libraryManager.FindByPath(seriesPath, true) as Folder;
if (librarySeries == null)
{
return;
}
var episodesToDelete = (await librarySeries.GetItems(new InternalItemsQuery
{
SortBy = new[] { ItemSortBy.DateCreated },
SortOrder = SortOrder.Descending,
IsVirtualItem = false,
IsFolder = false,
Recursive = true
}).ConfigureAwait(false))
.Items
.Where(i => i.LocationType == LocationType.FileSystem && _fileSystem.FileExists(i.Path))
.Skip(seriesTimer.KeepUpTo - 1)
.ToList();
foreach (var item in episodesToDelete)
{
try
{
await _libraryManager.DeleteItem(item, new DeleteOptions
{
DeleteFileLocation = true
}).ConfigureAwait(false);
}
catch (Exception ex)
{
_logger.ErrorException("Error deleting item", ex);
}
}
} }
finally finally
{ {
@ -1658,7 +1700,8 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
await _libraryManager.DeleteItem(libraryItem, new DeleteOptions await _libraryManager.DeleteItem(libraryItem, new DeleteOptions
{ {
DeleteFileLocation = true DeleteFileLocation = true
});
}).ConfigureAwait(false);
} }
else else
{ {

@ -84,7 +84,7 @@ namespace Emby.Server.Implementations.LiveTv
if (width >= 1900) if (width >= 1900)
{ {
videoStream.BitRate = 8000000; videoStream.BitRate = 15000000;
} }
else if (width >= 1260) else if (width >= 1260)

@ -185,7 +185,7 @@ namespace Emby.Server.Implementations.LiveTv
if (width >= 1900) if (width >= 1900)
{ {
videoStream.BitRate = 8000000; videoStream.BitRate = 15000000;
} }
else if (width >= 1260) else if (width >= 1260)

@ -29,7 +29,7 @@ namespace MediaBrowser.Controller.Entities
{ {
get get
{ {
return true; return false;
} }
} }

Loading…
Cancel
Save