@ -278,7 +278,7 @@ namespace MediaBrowser.Server.Implementations.Channels
? null
: _userManager . GetUserById ( new Guid ( query . UserId ) ) ;
var itemsResult = await GetChannelItems ( channelProvider , user , query . Category Id, providerStartIndex , providerLimit , cancellationToken )
var itemsResult = await GetChannelItems ( channelProvider , user , query . Folder Id, providerStartIndex , providerLimit , cancellationToken )
. ConfigureAwait ( false ) ;
var providerTotalRecordCount = providerLimit . HasValue ? itemsResult . TotalRecordCount : null ;
@ -301,9 +301,9 @@ namespace MediaBrowser.Server.Implementations.Channels
}
private readonly SemaphoreSlim _resourcePool = new SemaphoreSlim ( 1 , 1 ) ;
private async Task < ChannelItemResult > GetChannelItems ( IChannel channel , User user , string category Id, int? startIndex , int? limit , CancellationToken cancellationToken )
private async Task < ChannelItemResult > GetChannelItems ( IChannel channel , User user , string folder Id, int? startIndex , int? limit , CancellationToken cancellationToken )
{
var cachePath = GetChannelDataCachePath ( channel , user , category Id) ;
var cachePath = GetChannelDataCachePath ( channel , user , folder Id) ;
try
{
@ -358,11 +358,11 @@ namespace MediaBrowser.Server.Implementations.Channels
Limit = limit
} ;
if ( ! string . IsNullOrWhiteSpace ( category Id) )
if ( ! string . IsNullOrWhiteSpace ( folder Id) )
{
var categoryItem = ( IChannelItem ) _libraryManager . GetItemById ( new Guid ( category Id) ) ;
var categoryItem = ( IChannelItem ) _libraryManager . GetItemById ( new Guid ( folder Id) ) ;
query . Category Id = categoryItem . ExternalId ;
query . Folder Id = categoryItem . ExternalId ;
}
var result = await channel . GetChannelItems ( query , cancellationToken ) . ConfigureAwait ( false ) ;
@ -394,15 +394,15 @@ namespace MediaBrowser.Server.Implementations.Channels
}
}
private string GetChannelDataCachePath ( IChannel channel , User user , string category Id)
private string GetChannelDataCachePath ( IChannel channel , User user , string folder Id)
{
var channelId = GetInternalChannelId ( channel . Name ) . ToString ( "N" ) ;
var categoryKey = string . IsNullOrWhiteSpace ( categoryId ) ? "root" : category Id. GetMD5 ( ) . ToString ( "N" ) ;
var folderKey = string . IsNullOrWhiteSpace ( folderId ) ? "root" : folder Id. GetMD5 ( ) . ToString ( "N" ) ;
var version = string . IsNullOrWhiteSpace ( channel . DataVersion ) ? "0" : channel . DataVersion ;
return Path . Combine ( _config . ApplicationPaths . CachePath , "channels" , channelId , version , category Key, user . Id . ToString ( "N" ) + ".json" ) ;
return Path . Combine ( _config . ApplicationPaths . CachePath , "channels" , channelId , version , folder Key, user . Id . ToString ( "N" ) + ".json" ) ;
}
private async Task < QueryResult < BaseItemDto > > GetReturnItems ( IEnumerable < BaseItem > items , int? totalCountFromProvider , User user , ChannelItemQuery query , CancellationToken cancellationToken )
@ -448,7 +448,7 @@ namespace MediaBrowser.Server.Implementations.Channels
{
// Increment this as needed to force new downloads
// Incorporate Name because it's being used to convert channel entity to provider
return externalId + ( channelProvider . DataVersion ? ? string . Empty ) + ( channelProvider . Name ? ? string . Empty ) + "1 1 ";
return externalId + ( channelProvider . DataVersion ? ? string . Empty ) + ( channelProvider . Name ? ? string . Empty ) + "1 2 ";
}
private async Task < BaseItem > GetChannelItemEntity ( ChannelItemInfo info , IChannel channelProvider , Channel internalChannel , CancellationToken cancellationToken )
@ -459,21 +459,21 @@ namespace MediaBrowser.Server.Implementations.Channels
var idToHash = GetIdToHash ( info . Id , channelProvider ) ;
if ( info . Type = = ChannelItemType . Category )
if ( info . Type = = ChannelItemType . Folder )
{
id = idToHash . GetMBId ( typeof ( Channel Category Item) ) ;
id = idToHash . GetMBId ( typeof ( Channel Folder Item) ) ;
item = _libraryManager . GetItemById ( id ) as Channel Category Item;
item = _libraryManager . GetItemById ( id ) as Channel Folder Item;
if ( item = = null )
{
isNew = true ;
item = new Channel Category Item( ) ;
item = new Channel Folder Item( ) ;
}
}
else if ( info . MediaType = = ChannelMediaType . Audio )
{
id = idToHash . GetMBId ( typeof ( Channel Category Item) ) ;
id = idToHash . GetMBId ( typeof ( Channel Folder Item) ) ;
item = _libraryManager . GetItemById ( id ) as ChannelAudioItem ;