|
|
|
@ -1312,20 +1312,19 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
return 7;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private QueryResult<BaseItem> GetEmbyRecordings(RecordingQuery query, DtoOptions dtoOptions, User user)
|
|
|
|
|
private async Task<QueryResult<BaseItem>> GetEmbyRecordingsAsync(RecordingQuery query, DtoOptions dtoOptions, User user)
|
|
|
|
|
{
|
|
|
|
|
if (user is null)
|
|
|
|
|
{
|
|
|
|
|
return new QueryResult<BaseItem>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var folderIds = GetRecordingFolders(user, true)
|
|
|
|
|
.Select(i => i.Id)
|
|
|
|
|
.ToList();
|
|
|
|
|
var folders = await GetRecordingFoldersAsync(user, true).ConfigureAwait(false);
|
|
|
|
|
var folderIds = Array.ConvertAll(folders, x => x.Id);
|
|
|
|
|
|
|
|
|
|
var excludeItemTypes = new List<BaseItemKind>();
|
|
|
|
|
|
|
|
|
|
if (folderIds.Count == 0)
|
|
|
|
|
if (folderIds.Length == 0)
|
|
|
|
|
{
|
|
|
|
|
return new QueryResult<BaseItem>();
|
|
|
|
|
}
|
|
|
|
@ -1392,7 +1391,7 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
{
|
|
|
|
|
MediaTypes = new[] { MediaType.Video },
|
|
|
|
|
Recursive = true,
|
|
|
|
|
AncestorIds = folderIds.ToArray(),
|
|
|
|
|
AncestorIds = folderIds,
|
|
|
|
|
IsFolder = false,
|
|
|
|
|
IsVirtualItem = false,
|
|
|
|
|
Limit = limit,
|
|
|
|
@ -1528,7 +1527,7 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public QueryResult<BaseItemDto> GetRecordings(RecordingQuery query, DtoOptions options)
|
|
|
|
|
public async Task<QueryResult<BaseItemDto>> GetRecordingsAsync(RecordingQuery query, DtoOptions options)
|
|
|
|
|
{
|
|
|
|
|
var user = query.UserId.Equals(default)
|
|
|
|
|
? null
|
|
|
|
@ -1536,7 +1535,7 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
|
|
|
|
|
RemoveFields(options);
|
|
|
|
|
|
|
|
|
|
var internalResult = GetEmbyRecordings(query, options, user);
|
|
|
|
|
var internalResult = await GetEmbyRecordingsAsync(query, options, user).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var returnArray = _dtoService.GetBaseItemDtos(internalResult.Items, options, user);
|
|
|
|
|
|
|
|
|
@ -2379,12 +2378,11 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
return _tvDtoService.GetInternalProgramId(externalId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<BaseItem> GetRecordingFolders(User user)
|
|
|
|
|
{
|
|
|
|
|
return GetRecordingFolders(user, false);
|
|
|
|
|
}
|
|
|
|
|
/// <inheritdoc />
|
|
|
|
|
public Task<BaseItem[]> GetRecordingFoldersAsync(User user)
|
|
|
|
|
=> GetRecordingFoldersAsync(user, false);
|
|
|
|
|
|
|
|
|
|
private List<BaseItem> GetRecordingFolders(User user, bool refreshChannels)
|
|
|
|
|
private async Task<BaseItem[]> GetRecordingFoldersAsync(User user, bool refreshChannels)
|
|
|
|
|
{
|
|
|
|
|
var folders = EmbyTV.EmbyTV.Current.GetRecordingFolders()
|
|
|
|
|
.SelectMany(i => i.Locations)
|
|
|
|
@ -2396,14 +2394,16 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
.OrderBy(i => i.SortName)
|
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
|
|
folders.AddRange(_channelManager.GetChannelsInternal(new MediaBrowser.Model.Channels.ChannelQuery
|
|
|
|
|
var channels = await _channelManager.GetChannelsInternalAsync(new MediaBrowser.Model.Channels.ChannelQuery
|
|
|
|
|
{
|
|
|
|
|
UserId = user.Id,
|
|
|
|
|
IsRecordingsFolder = true,
|
|
|
|
|
RefreshLatestChannelItems = refreshChannels
|
|
|
|
|
}).Items);
|
|
|
|
|
}).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
folders.AddRange(channels.Items);
|
|
|
|
|
|
|
|
|
|
return folders.Cast<BaseItem>().ToList();
|
|
|
|
|
return folders.Cast<BaseItem>().ToArray();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|