mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-22 10:04:44 +01:00
update handling of deleted recording files
This commit is contained in:
@@ -926,16 +926,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
var queryResult = _libraryManager.QueryItems(internalQuery);
|
||||
|
||||
var returnArray = queryResult.Items
|
||||
.Cast<LiveTvProgram>()
|
||||
.Select(i => new Tuple<BaseItemDto, string, string>(_dtoService.GetBaseItemDto(i, options, user), i.ServiceName, i.ExternalId))
|
||||
.ToArray();
|
||||
|
||||
await AddRecordingInfo(returnArray, cancellationToken).ConfigureAwait(false);
|
||||
var returnArray = _dtoService.GetBaseItemDtos(queryResult.Items, options, user).ToArray();
|
||||
|
||||
var result = new QueryResult<BaseItemDto>
|
||||
{
|
||||
Items = returnArray.Select(i => i.Item1).ToArray(),
|
||||
Items = returnArray,
|
||||
TotalRecordCount = queryResult.TotalRecordCount
|
||||
};
|
||||
|
||||
@@ -1006,15 +1001,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
var user = _userManager.GetUserById(query.UserId);
|
||||
|
||||
var returnArray = internalResult.Items
|
||||
.Select(i => new Tuple<BaseItemDto, string, string>(_dtoService.GetBaseItemDto(i, options, user), i.ServiceName, i.ExternalId))
|
||||
.ToArray();
|
||||
|
||||
await AddRecordingInfo(returnArray, cancellationToken).ConfigureAwait(false);
|
||||
var returnArray = _dtoService.GetBaseItemDtos(internalResult.Items, options, user).ToArray();
|
||||
|
||||
var result = new QueryResult<BaseItemDto>
|
||||
{
|
||||
Items = returnArray.Select(i => i.Item1).ToArray(),
|
||||
Items = returnArray,
|
||||
TotalRecordCount = internalResult.TotalRecordCount
|
||||
};
|
||||
|
||||
@@ -1635,18 +1626,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
var internalResult = await GetInternalRecordings(query, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
var tuples = internalResult.Items
|
||||
.Select(i => new Tuple<BaseItem, BaseItemDto>(i, _dtoService.GetBaseItemDto(i, options, user)))
|
||||
.ToArray();
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
_dtoService.FillSyncInfo(tuples, new DtoOptions(), user);
|
||||
}
|
||||
var returnArray = _dtoService.GetBaseItemDtos(internalResult.Items, options, user).ToArray();
|
||||
|
||||
return new QueryResult<BaseItemDto>
|
||||
{
|
||||
Items = tuples.Select(i => i.Item2).ToArray(),
|
||||
Items = returnArray,
|
||||
TotalRecordCount = internalResult.TotalRecordCount
|
||||
};
|
||||
}
|
||||
@@ -1707,6 +1691,19 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
};
|
||||
}
|
||||
|
||||
public Task OnRecordingFileDeleted(ILiveTvRecording recording)
|
||||
{
|
||||
var service = GetService(recording);
|
||||
|
||||
if (service is EmbyTV.EmbyTV)
|
||||
{
|
||||
// We can't trust that we'll be able to direct stream it through emby server, no matter what the provider says
|
||||
return service.DeleteRecordingAsync(recording.ExternalId, CancellationToken.None);
|
||||
}
|
||||
|
||||
return Task.FromResult(true);
|
||||
}
|
||||
|
||||
public async Task DeleteRecording(string recordingId)
|
||||
{
|
||||
var recording = await GetInternalRecording(recordingId, CancellationToken.None).ConfigureAwait(false);
|
||||
|
||||
@@ -239,11 +239,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
typeof(Year).Name,
|
||||
typeof(Channel).Name,
|
||||
typeof(AggregateFolder).Name,
|
||||
typeof(CollectionFolder).Name,
|
||||
|
||||
// LiveTVManager handles recordings
|
||||
typeof(LiveTvAudioRecording).Name,
|
||||
typeof(LiveTvVideoRecording).Name
|
||||
typeof(CollectionFolder).Name
|
||||
}
|
||||
});
|
||||
|
||||
@@ -279,11 +275,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
|
||||
_logger.Info("Deleting item from database {0} because path no longer exists. type: {1} path: {2}", libraryItem.Name, libraryItem.GetType().Name, libraryItem.Path ?? string.Empty);
|
||||
|
||||
await libraryItem.Delete(new DeleteOptions
|
||||
{
|
||||
DeleteFileLocation = false
|
||||
|
||||
}).ConfigureAwait(false);
|
||||
await libraryItem.OnFileDeleted().ConfigureAwait(false);
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user