diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-14 15:03:35 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-14 15:03:35 -0500 |
| commit | f4b890f163cd3be5b399ef03be409106ab8ff60b (patch) | |
| tree | 5142c6f6772b39582922d637a94f5953db9b0158 | |
| parent | 3cde2011904de6a874b17cab97fbc984ce62c228 (diff) | |
added new item by name filters
29 files changed, 155 insertions, 95 deletions
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs index 7912cba6f..c53076829 100644 --- a/MediaBrowser.Api/ItemUpdateService.cs +++ b/MediaBrowser.Api/ItemUpdateService.cs @@ -14,14 +14,6 @@ using System.Threading.Tasks; namespace MediaBrowser.Api { - [Route("/LiveTv/Channels/{ChannelId}", "POST")] - [Api(("Updates an item"))] - public class UpdateChannel : BaseItemDto, IReturnVoid - { - [ApiMember(Name = "ChannelId", Description = "The id of the channel", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public string ChannelId { get; set; } - } - [Route("/Items/{ItemId}", "POST")] [Api(("Updates an item"))] public class UpdateItem : BaseItemDto, IReturnVoid @@ -98,13 +90,6 @@ namespace MediaBrowser.Api Task.WaitAll(task); } - public void Post(UpdateChannel request) - { - var task = UpdateItem(request); - - Task.WaitAll(task); - } - private async Task UpdateItem(UpdateItem request) { var item = _dtoService.GetItemByDtoId(request.ItemId); @@ -144,15 +129,6 @@ namespace MediaBrowser.Api await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); } - private async Task UpdateItem(UpdateChannel request) - { - var item = _liveTv.GetInternalChannel(request.Id); - - UpdateItem(request, item); - - await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } - public void Post(UpdateArtist request) { var task = UpdateItem(request); diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs index 5b123eb97..20b1af8b2 100644 --- a/MediaBrowser.Api/LiveTv/LiveTvService.cs +++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs @@ -13,9 +13,9 @@ using System.Threading.Tasks; namespace MediaBrowser.Api.LiveTv { - [Route("/LiveTv/Services", "GET")] + [Route("/LiveTv/Info", "GET")] [Api(Description = "Gets available live tv services.")] - public class GetServices : IReturn<List<LiveTvServiceInfo>> + public class GetLiveTvInfo : IReturn<LiveTvInfo> { } @@ -290,13 +290,19 @@ namespace MediaBrowser.Api.LiveTv } } - public object Get(GetServices request) + public object Get(GetLiveTvInfo request) { var services = _liveTvManager.Services .Select(GetServiceInfo) .ToList(); - return ToOptimizedResult(services); + var info = new LiveTvInfo + { + Services = services, + ActiveServiceName = _liveTvManager.ActiveService == null ? null : _liveTvManager.ActiveService.Name + }; + + return ToOptimizedResult(info); } private LiveTvServiceInfo GetServiceInfo(ILiveTvService service) diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index a39e4cf58..7ad15c9ee 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -1004,9 +1004,9 @@ namespace MediaBrowser.Api.Playback RequestedUrl = url }; - Guid itemId; + var item = DtoService.GetItemByDtoId(request.Id); - if (string.Equals(request.Type, "Recording", StringComparison.OrdinalIgnoreCase)) + if (item is ILiveTvRecording) { var recording = await LiveTvManager.GetInternalRecording(request.Id, cancellationToken).ConfigureAwait(false); @@ -1042,11 +1042,10 @@ namespace MediaBrowser.Api.Playback } } - itemId = recording.Id; //state.RunTimeTicks = recording.RunTimeTicks; state.SendInputOverStandardInput = recording.RecordingInfo.Status == RecordingStatus.InProgress; } - else if (string.Equals(request.Type, "Channel", StringComparison.OrdinalIgnoreCase)) + else if (item is LiveTvChannel) { var channel = LiveTvManager.GetInternalChannel(request.Id); @@ -1069,13 +1068,10 @@ namespace MediaBrowser.Api.Playback state.IsRemote = true; } - itemId = channel.Id; state.SendInputOverStandardInput = true; } else { - var item = DtoService.GetItemByDtoId(request.Id); - state.MediaPath = item.Path; state.IsRemote = item.LocationType == LocationType.Remote; @@ -1093,14 +1089,13 @@ namespace MediaBrowser.Api.Playback } state.RunTimeTicks = item.RunTimeTicks; - itemId = item.Id; } var videoRequest = request as VideoStreamRequest; var mediaStreams = ItemRepository.GetMediaStreams(new MediaStreamQuery { - ItemId = itemId + ItemId = item.Id }).ToList(); diff --git a/MediaBrowser.Api/Playback/StreamRequest.cs b/MediaBrowser.Api/Playback/StreamRequest.cs index 454cc411c..1486c0de7 100644 --- a/MediaBrowser.Api/Playback/StreamRequest.cs +++ b/MediaBrowser.Api/Playback/StreamRequest.cs @@ -65,12 +65,6 @@ namespace MediaBrowser.Api.Playback /// No need to put this in api docs since it's dlna only /// </summary> public bool AlbumArt { get; set; } - - /// <summary> - /// Gets or sets the type. - /// </summary> - /// <value>The type.</value> - public string Type { get; set; } } public class VideoStreamRequest : StreamRequest diff --git a/MediaBrowser.Api/UserLibrary/ArtistsService.cs b/MediaBrowser.Api/UserLibrary/ArtistsService.cs index 5c1b10487..48fc72913 100644 --- a/MediaBrowser.Api/UserLibrary/ArtistsService.cs +++ b/MediaBrowser.Api/UserLibrary/ArtistsService.cs @@ -114,5 +114,10 @@ namespace MediaBrowser.Api.UserLibrary return LibraryManager.GetAllArtists(items) .Select(name => LibraryManager.GetArtist(name)); } + + protected override IEnumerable<BaseItem> GetLibraryItems(MusicArtist item, IEnumerable<BaseItem> libraryItems) + { + return libraryItems.OfType<IHasArtist>().Where(i => i.HasArtist(item.Name)).Cast<BaseItem>(); + } } } diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index 15926e983..dec35100d 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -93,6 +93,8 @@ namespace MediaBrowser.Api.UserLibrary var filteredItems = FilterItems(request, extractedItems, user); + filteredItems = FilterByLibraryItems(request, filteredItems, user); + filteredItems = ItemsService.ApplySortOrder(request, filteredItems, user, LibraryManager).Cast<TItemType>(); var ibnItemsArray = filteredItems.ToList(); @@ -127,6 +129,39 @@ namespace MediaBrowser.Api.UserLibrary return result; } + private IEnumerable<TItemType> FilterByLibraryItems(GetItemsByName request, IEnumerable<TItemType> items, User user) + { + var filters = request.GetFilters().ToList(); + + if (filters.Contains(ItemFilter.IsPlayed)) + { + var libraryItems = user.RootFolder.GetRecursiveChildren(user).ToList(); + + items = items.Where(i => GetLibraryItems(i, libraryItems).All(l => + { + var userdata = UserDataRepository.GetUserData(user.Id, l.GetUserDataKey()); + + return userdata != null && userdata.Played; + })); + } + + if (filters.Contains(ItemFilter.IsUnplayed)) + { + var libraryItems = user.RootFolder.GetRecursiveChildren(user).ToList(); + + items = items.Where(i => GetLibraryItems(i, libraryItems).All(l => + { + var userdata = UserDataRepository.GetUserData(user.Id, l.GetUserDataKey()); + + return userdata == null || !userdata.Played; + })); + } + + return items; + } + + protected abstract IEnumerable<BaseItem> GetLibraryItems(TItemType item, IEnumerable<BaseItem> libraryItems); + /// <summary> /// Filters the items. /// </summary> diff --git a/MediaBrowser.Api/UserLibrary/GameGenresService.cs b/MediaBrowser.Api/UserLibrary/GameGenresService.cs index 54aeaeed3..77b1f4c54 100644 --- a/MediaBrowser.Api/UserLibrary/GameGenresService.cs +++ b/MediaBrowser.Api/UserLibrary/GameGenresService.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Dto; @@ -109,5 +110,10 @@ namespace MediaBrowser.Api.UserLibrary .Distinct(StringComparer.OrdinalIgnoreCase) .Select(name => LibraryManager.GetGameGenre(name)); } + + protected override IEnumerable<BaseItem> GetLibraryItems(GameGenre item, IEnumerable<BaseItem> libraryItems) + { + return libraryItems.Where(i => (i is Game) && i.Genres.Contains(item.Name, StringComparer.OrdinalIgnoreCase)); + } } } diff --git a/MediaBrowser.Api/UserLibrary/GenresService.cs b/MediaBrowser.Api/UserLibrary/GenresService.cs index db3948976..d1f7fab01 100644 --- a/MediaBrowser.Api/UserLibrary/GenresService.cs +++ b/MediaBrowser.Api/UserLibrary/GenresService.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Dto; @@ -113,5 +114,10 @@ namespace MediaBrowser.Api.UserLibrary .Distinct(StringComparer.OrdinalIgnoreCase) .Select(name => LibraryManager.GetGenre(name)); } + + protected override IEnumerable<BaseItem> GetLibraryItems(Genre item, IEnumerable<BaseItem> libraryItems) + { + return libraryItems.Where(i => !(i is Game) && !(i is IHasMusicGenres) && i.Genres.Contains(item.Name, StringComparer.OrdinalIgnoreCase)); + } } } diff --git a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs index 59af94ef5..945ac5a67 100644 --- a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs +++ b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs @@ -109,5 +109,10 @@ namespace MediaBrowser.Api.UserLibrary .Distinct(StringComparer.OrdinalIgnoreCase) .Select(name => LibraryManager.GetMusicGenre(name)); } + + protected override IEnumerable<BaseItem> GetLibraryItems(MusicGenre item, IEnumerable<BaseItem> libraryItems) + { + return libraryItems.Where(i => (i is IHasMusicGenres) && i.Genres.Contains(item.Name, StringComparer.OrdinalIgnoreCase)); + } } } diff --git a/MediaBrowser.Api/UserLibrary/PersonsService.cs b/MediaBrowser.Api/UserLibrary/PersonsService.cs index 48e486bb5..03e710ae8 100644 --- a/MediaBrowser.Api/UserLibrary/PersonsService.cs +++ b/MediaBrowser.Api/UserLibrary/PersonsService.cs @@ -163,5 +163,10 @@ namespace MediaBrowser.Api.UserLibrary people.Where(p => personTypes.Contains(p.Type ?? string.Empty, StringComparer.OrdinalIgnoreCase) || personTypes.Contains(p.Role ?? string.Empty, StringComparer.OrdinalIgnoreCase)); } + + protected override IEnumerable<BaseItem> GetLibraryItems(Person item, IEnumerable<BaseItem> libraryItems) + { + return libraryItems.Where(i => i.People.Any(p => string.Equals(p.Name, item.Name, StringComparison.OrdinalIgnoreCase))); + } } } diff --git a/MediaBrowser.Api/UserLibrary/StudiosService.cs b/MediaBrowser.Api/UserLibrary/StudiosService.cs index 86f939437..8b1eeec0f 100644 --- a/MediaBrowser.Api/UserLibrary/StudiosService.cs +++ b/MediaBrowser.Api/UserLibrary/StudiosService.cs @@ -114,5 +114,10 @@ namespace MediaBrowser.Api.UserLibrary .Distinct(StringComparer.OrdinalIgnoreCase) .Select(name => LibraryManager.GetStudio(name)); } + + protected override IEnumerable<BaseItem> GetLibraryItems(Studio item, IEnumerable<BaseItem> libraryItems) + { + return libraryItems.Where(i => i.Studios.Contains(item.Name, StringComparer.OrdinalIgnoreCase)); + } } } diff --git a/MediaBrowser.Api/UserLibrary/YearsService.cs b/MediaBrowser.Api/UserLibrary/YearsService.cs index 8f5178ac5..8b03fb50b 100644 --- a/MediaBrowser.Api/UserLibrary/YearsService.cs +++ b/MediaBrowser.Api/UserLibrary/YearsService.cs @@ -114,5 +114,19 @@ namespace MediaBrowser.Api.UserLibrary .Distinct() .Select(year => LibraryManager.GetYear(year)); } + + protected readonly CultureInfo UsCulture = new CultureInfo("en-US"); + + protected override IEnumerable<BaseItem> GetLibraryItems(Year item, IEnumerable<BaseItem> libraryItems) + { + int year; + + if (!int.TryParse(item.Name, NumberStyles.Integer, UsCulture, out year)) + { + return libraryItems; + } + + return libraryItems.Where(i => i.ProductionYear.HasValue && i.ProductionYear.Value == year); + } } } diff --git a/MediaBrowser.Controller/Dto/IDtoService.cs b/MediaBrowser.Controller/Dto/IDtoService.cs index 6cd10a2fb..fd5ccac5b 100644 --- a/MediaBrowser.Controller/Dto/IDtoService.cs +++ b/MediaBrowser.Controller/Dto/IDtoService.cs @@ -58,6 +58,13 @@ namespace MediaBrowser.Controller.Dto BaseItem GetItemByDtoId(string id, Guid? userId = null); /// <summary> + /// Attaches the primary image aspect ratio. + /// </summary> + /// <param name="dto">The dto.</param> + /// <param name="item">The item.</param> + void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item); + + /// <summary> /// Gets the base item dto. /// </summary> /// <param name="item">The item.</param> diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index dcee4bae7..47b5247c3 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -23,7 +23,7 @@ namespace MediaBrowser.Controller.Entities /// <summary> /// Class BaseItem /// </summary> - public abstract class BaseItem : IHasProviderIds, ILibraryItem, IHasImages, IHasUserData + public abstract class BaseItem : IHasProviderIds, IBaseItem, IHasImages, IHasUserData { protected BaseItem() { @@ -662,7 +662,7 @@ namespace MediaBrowser.Controller.Entities return LibraryManager.ResolvePaths<Trailer>(files, null).Select(video => { // Try to retrieve it from the db. If we don't find it, use the resolved version - var dbItem = LibraryManager.RetrieveItem(video.Id) as Trailer; + var dbItem = LibraryManager.GetItemById(video.Id) as Trailer; if (dbItem != null) { @@ -723,7 +723,7 @@ namespace MediaBrowser.Controller.Entities return LibraryManager.ResolvePaths<Audio.Audio>(files, null).Select(audio => { // Try to retrieve it from the db. If we don't find it, use the resolved version - var dbItem = LibraryManager.RetrieveItem(audio.Id) as Audio.Audio; + var dbItem = LibraryManager.GetItemById(audio.Id) as Audio.Audio; if (dbItem != null) { @@ -781,7 +781,7 @@ namespace MediaBrowser.Controller.Entities return LibraryManager.ResolvePaths<Video>(files, null).Select(item => { // Try to retrieve it from the db. If we don't find it, use the resolved version - var dbItem = LibraryManager.RetrieveItem(item.Id) as Video; + var dbItem = LibraryManager.GetItemById(item.Id) as Video; if (dbItem != null) { diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index a85157a26..6fb99f547 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -884,7 +884,7 @@ namespace MediaBrowser.Controller.Entities // First get using the cached Id if (info.ItemId != Guid.Empty) { - item = LibraryManager.GetItemById(info.ItemId); + item = LibraryManager.GetItemById(info.ItemId) as BaseItem; } // If still null, search by path diff --git a/MediaBrowser.Controller/Entities/ILibraryItem.cs b/MediaBrowser.Controller/Entities/IBaseItem.cs index b2f39608f..83ccd55b0 100644 --- a/MediaBrowser.Controller/Entities/ILibraryItem.cs +++ b/MediaBrowser.Controller/Entities/IBaseItem.cs @@ -5,7 +5,7 @@ namespace MediaBrowser.Controller.Entities /// <summary> /// Interface ILibraryItem /// </summary> - public interface ILibraryItem + public interface IBaseItem { /// <summary> /// Gets the name. diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index b1d3a871a..ba11b0eef 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -179,7 +179,7 @@ namespace MediaBrowser.Controller.Entities.Movies return LibraryManager.ResolvePaths<Video>(files, null).Select(video => { // Try to retrieve it from the db. If we don't find it, use the resolved version - var dbItem = LibraryManager.RetrieveItem(video.Id) as Video; + var dbItem = LibraryManager.GetItemById(video.Id) as Video; if (dbItem != null) { diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index 8ca475650..e663c8353 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -268,7 +268,7 @@ namespace MediaBrowser.Controller.Entities return LibraryManager.ResolvePaths<Video>(files, null).Select(video => { // Try to retrieve it from the db. If we don't find it, use the resolved version - var dbItem = LibraryManager.RetrieveItem(video.Id) as Video; + var dbItem = LibraryManager.GetItemById(video.Id) as Video; if (dbItem != null) { diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index af3857f17..bb5e97621 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -99,7 +99,7 @@ <Compile Include="Entities\IHasTrailers.cs" /> <Compile Include="Entities\IHasUserData.cs" /> <Compile Include="Entities\IItemByName.cs" /> - <Compile Include="Entities\ILibraryItem.cs" /> + <Compile Include="Entities\IBaseItem.cs" /> <Compile Include="Entities\ImageSourceInfo.cs" /> <Compile Include="Entities\LinkedChild.cs" /> <Compile Include="Entities\MusicVideo.cs" /> diff --git a/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs b/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs index 0c4dbfd65..98e99b1cc 100644 --- a/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs +++ b/MediaBrowser.Model/ApiClient/ApiClientExtensions.cs @@ -1,7 +1,7 @@ -using System.IO; +using MediaBrowser.Model.Dto; +using System.IO; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Model.Dto; namespace MediaBrowser.Model.ApiClient { diff --git a/MediaBrowser.Model/LiveTv/ChannelInfoDto.cs b/MediaBrowser.Model/LiveTv/ChannelInfoDto.cs index 7ee86ffac..afce04230 100644 --- a/MediaBrowser.Model/LiveTv/ChannelInfoDto.cs +++ b/MediaBrowser.Model/LiveTv/ChannelInfoDto.cs @@ -8,7 +8,7 @@ namespace MediaBrowser.Model.LiveTv /// <summary> /// Class ChannelInfoDto /// </summary> - public class ChannelInfoDto + public class ChannelInfoDto : IItemDto { /// <summary> /// Gets or sets the name. @@ -76,6 +76,18 @@ namespace MediaBrowser.Model.LiveTv /// <value>The now playing program.</value> public ProgramInfoDto CurrentProgram { get; set; } + /// <summary> + /// Gets or sets the primary image aspect ratio, after image enhancements. + /// </summary> + /// <value>The primary image aspect ratio.</value> + public double? PrimaryImageAspectRatio { get; set; } + + /// <summary> + /// Gets or sets the primary image aspect ratio, before image enhancements. + /// </summary> + /// <value>The original primary image aspect ratio.</value> + public double? OriginalPrimaryImageAspectRatio { get; set; } + public ChannelInfoDto() { ImageTags = new Dictionary<ImageType, Guid>(); diff --git a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs index a25207509..c93779b5a 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace MediaBrowser.Model.LiveTv { @@ -28,4 +29,24 @@ namespace MediaBrowser.Model.LiveTv /// <value>The end date.</value> public DateTime EndDate { get; set; } } + + public class LiveTvInfo + { + /// <summary> + /// Gets or sets the services. + /// </summary> + /// <value>The services.</value> + public List<LiveTvServiceInfo> Services { get; set; } + + /// <summary> + /// Gets or sets the name of the active service. + /// </summary> + /// <value>The name of the active service.</value> + public string ActiveServiceName { get; set; } + + public LiveTvInfo() + { + Services = new List<LiveTvServiceInfo>(); + } + } } diff --git a/MediaBrowser.Providers/RefreshIntrosTask.cs b/MediaBrowser.Providers/RefreshIntrosTask.cs index 3ecddf613..b20a6e331 100644 --- a/MediaBrowser.Providers/RefreshIntrosTask.cs +++ b/MediaBrowser.Providers/RefreshIntrosTask.cs @@ -89,7 +89,7 @@ namespace MediaBrowser.Providers return; } - var dbItem = _libraryManager.RetrieveItem(item.Id); + var dbItem = _libraryManager.GetItemById(item.Id); var isNewItem = false; if (dbItem != null) diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 2490aa249..9cf21c534 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -131,11 +131,10 @@ namespace MediaBrowser.Server.Implementations.Dto { if (user == null) { - //counts = item.ItemCounts; return; } - ItemByNameCounts counts = item.GetItemByNameCounts(user.Id) ?? new ItemByNameCounts(); + var counts = item.GetItemByNameCounts(user.Id) ?? new ItemByNameCounts(); dto.ChildCount = counts.TotalCount; @@ -1244,7 +1243,7 @@ namespace MediaBrowser.Server.Implementations.Dto /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> - private void AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem item) + public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item) { var path = item.PrimaryImagePath; diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index b53b3b651..eff919f17 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -1045,13 +1045,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv info.DayPattern = _tvDtoService.GetDayPattern(info.Days); info.Name = program.Name; - info.ChannelId = program.ChannelId; + info.ChannelId = programDto.ChannelId; info.ChannelName = programDto.ChannelName; info.EndDate = program.EndDate; info.StartDate = program.StartDate; info.Name = program.Name; info.Overview = program.Overview; - info.ProgramId = program.Id; + info.ProgramId = programDto.Id; info.ExternalProgramId = programDto.ExternalId; return info; diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index 211a3028b..93bf768e6 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -567,7 +567,6 @@ namespace MediaBrowser.WebDashboard.Api await AppendResource(memoryStream, "thirdparty/jquerymobile-1.4.0/jquery.mobile-1.4.0.min.js", newLineBytes).ConfigureAwait(false); //await AppendResource(memoryStream, "thirdparty/jquery.infinite-scroll-helper.min.js", newLineBytes).ConfigureAwait(false); - await AppendResource(memoryStream, "thirdparty/jquery.hoverIntent.minified.js", newLineBytes).ConfigureAwait(false); var versionString = string.Format("window.dashboardVersion='{0}';", _appHost.ApplicationVersion); var versionBytes = Encoding.UTF8.GetBytes(versionString); diff --git a/MediaBrowser.WebDashboard/ApiClient.js b/MediaBrowser.WebDashboard/ApiClient.js index 578f71176..e790a1836 100644 --- a/MediaBrowser.WebDashboard/ApiClient.js +++ b/MediaBrowser.WebDashboard/ApiClient.js @@ -378,20 +378,9 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }); }; - self.getAuthorizedFeatures = function (options) { + self.getLiveTvInfo = function (options) { - var url = self.getUrl("Users/AuthorizedFeatures", options || {}); - - return self.ajax({ - type: "GET", - url: url, - dataType: "json" - }); - }; - - self.getLiveTvServices = function (options) { - - var url = self.getUrl("LiveTv/Services", options || {}); + var url = self.getUrl("LiveTv/Info", options || {}); return self.ajax({ type: "GET", @@ -2714,22 +2703,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }); }; - self.updateLiveTvChannel = function (item) { - - if (!item) { - throw new Error("null item"); - } - - var url = self.getUrl("LiveTv/Channels/" + item.Id); - - return self.ajax({ - type: "POST", - url: url, - data: JSON.stringify(item), - contentType: "application/json" - }); - }; - self.updateArtist = function (item) { if (!item) { diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 96a27c28d..78164a5af 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -496,9 +496,6 @@ <Content Include="dashboard-ui\thirdparty\jquery-2.0.3.min.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="dashboard-ui\thirdparty\jquery.hoverIntent.minified.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
<Content Include="dashboard-ui\thirdparty\jquery.infinite-scroll-helper.min.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config index 939ca9997..56158ace7 100644 --- a/MediaBrowser.WebDashboard/packages.config +++ b/MediaBrowser.WebDashboard/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="MediaBrowser.ApiClient.Javascript" version="3.0.228" targetFramework="net45" /> + <package id="MediaBrowser.ApiClient.Javascript" version="3.0.230" targetFramework="net45" /> </packages>
\ No newline at end of file |
