From f2abd8ba39eefd5397eb3f0e327efbca8d8ecd0f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 1 Jun 2015 10:49:23 -0400 Subject: update live tv database --- .../Channels/ChannelAudioItem.cs | 1 - .../Channels/ChannelFolderItem.cs | 1 - .../Channels/ChannelVideoItem.cs | 1 - MediaBrowser.Controller/Entities/BaseItem.cs | 6 +++++ .../Entities/IHasProgramAttributes.cs | 9 +++++++ MediaBrowser.Controller/Entities/IHasStartDate.cs | 9 +++++++ .../Entities/InternalItemsQuery.cs | 12 +++++++++ MediaBrowser.Controller/Library/ILibraryManager.cs | 8 ++++++ MediaBrowser.Controller/LiveTv/LiveTvProgram.cs | 20 +-------------- .../MediaBrowser.Controller.csproj | 2 ++ .../Persistence/IItemRepository.cs | 29 ++++++++++++++-------- 11 files changed, 65 insertions(+), 33 deletions(-) create mode 100644 MediaBrowser.Controller/Entities/IHasProgramAttributes.cs create mode 100644 MediaBrowser.Controller/Entities/IHasStartDate.cs (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Channels/ChannelAudioItem.cs b/MediaBrowser.Controller/Channels/ChannelAudioItem.cs index 82fe66c7b..aa4b6731c 100644 --- a/MediaBrowser.Controller/Channels/ChannelAudioItem.cs +++ b/MediaBrowser.Controller/Channels/ChannelAudioItem.cs @@ -15,7 +15,6 @@ namespace MediaBrowser.Controller.Channels { public string ExternalId { get; set; } - public string ChannelId { get; set; } public string DataVersion { get; set; } public ChannelItemType ChannelItemType { get; set; } diff --git a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs index 641d37161..7e9da52a9 100644 --- a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs +++ b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs @@ -12,7 +12,6 @@ namespace MediaBrowser.Controller.Channels { public string ExternalId { get; set; } - public string ChannelId { get; set; } public string DataVersion { get; set; } public ChannelItemType ChannelItemType { get; set; } diff --git a/MediaBrowser.Controller/Channels/ChannelVideoItem.cs b/MediaBrowser.Controller/Channels/ChannelVideoItem.cs index ef3cc7cba..ca5e343f8 100644 --- a/MediaBrowser.Controller/Channels/ChannelVideoItem.cs +++ b/MediaBrowser.Controller/Channels/ChannelVideoItem.cs @@ -16,7 +16,6 @@ namespace MediaBrowser.Controller.Channels { public string ExternalId { get; set; } - public string ChannelId { get; set; } public string DataVersion { get; set; } public ChannelItemType ChannelItemType { get; set; } diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 8b6cbdc93..014b3ae6a 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -59,6 +59,12 @@ namespace MediaBrowser.Controller.Entities public List ImageInfos { get; set; } + /// + /// Gets or sets the channel identifier. + /// + /// The channel identifier. + public string ChannelId { get; set; } + [IgnoreDataMember] public virtual bool SupportsAddingToPlaylist { diff --git a/MediaBrowser.Controller/Entities/IHasProgramAttributes.cs b/MediaBrowser.Controller/Entities/IHasProgramAttributes.cs new file mode 100644 index 000000000..1878d8d2c --- /dev/null +++ b/MediaBrowser.Controller/Entities/IHasProgramAttributes.cs @@ -0,0 +1,9 @@ + +namespace MediaBrowser.Controller.Entities +{ + public interface IHasProgramAttributes + { + bool IsMovie { get; set; } + bool IsSports { get; set; } + } +} diff --git a/MediaBrowser.Controller/Entities/IHasStartDate.cs b/MediaBrowser.Controller/Entities/IHasStartDate.cs new file mode 100644 index 000000000..a6714fb96 --- /dev/null +++ b/MediaBrowser.Controller/Entities/IHasStartDate.cs @@ -0,0 +1,9 @@ +using System; + +namespace MediaBrowser.Controller.Entities +{ + public interface IHasStartDate + { + DateTime StartDate { get; set; } + } +} diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs index 727f756f1..245c11169 100644 --- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs @@ -73,6 +73,17 @@ namespace MediaBrowser.Controller.Entities public string[] Tags { get; set; } public string[] OfficialRatings { get; set; } + public DateTime? MinStartDate { get; set; } + public DateTime? MaxStartDate { get; set; } + public DateTime? MinEndDate { get; set; } + public DateTime? MaxEndDate { get; set; } + public bool? IsAiring { get; set; } + + public bool? IsMovie { get; set; } + public bool? IsSports { get; set; } + + public string[] ChannelIds { get; set; } + public InternalItemsQuery() { Tags = new string[] { }; @@ -89,6 +100,7 @@ namespace MediaBrowser.Controller.Entities Years = new int[] { }; PersonTypes = new string[] { }; PersonIds = new string[] { }; + ChannelIds = new string[] { }; } } } diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index c00912115..aa8799fa6 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Library { @@ -132,6 +133,13 @@ namespace MediaBrowser.Controller.Library /// BaseItem. BaseItem GetItemById(Guid id); + /// + /// Gets the items. + /// + /// The query. + /// QueryResult<BaseItem>. + QueryResult GetItems(InternalItemsQuery query); + /// /// Gets the memory item by identifier. /// diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs index 0609df4c6..8232c5c7a 100644 --- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs +++ b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs @@ -1,5 +1,4 @@ using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.LiveTv; @@ -7,12 +6,10 @@ using MediaBrowser.Model.Users; using System; using System.Linq; using System.Runtime.Serialization; -using System.Threading; -using System.Threading.Tasks; namespace MediaBrowser.Controller.LiveTv { - public class LiveTvProgram : BaseItem, ILiveTvItem, IHasLookupInfo + public class LiveTvProgram : BaseItem, ILiveTvItem, IHasLookupInfo, IHasStartDate, IHasProgramAttributes { /// /// Gets the user data key. @@ -28,12 +25,6 @@ namespace MediaBrowser.Controller.LiveTv /// public string ExternalId { get; set; } - /// - /// Gets or sets the channel identifier. - /// - /// The channel identifier. - public string ExternalChannelId { get; set; } - /// /// Gets or sets the original air date. /// @@ -204,15 +195,6 @@ namespace MediaBrowser.Controller.LiveTv return "Program"; } - public override Task UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken) - { - DateLastSaved = DateTime.UtcNow; - - // Avoid library manager and keep out of in-memory cache - // Not great that this class has to know about that, but we'll improve that later. - return ItemRepository.SaveItem(this, cancellationToken); - } - protected override bool GetBlockUnratedValue(UserPolicy config) { return config.BlockUnratedItems.Contains(UnratedItem.LiveTvProgram); diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index b66e6b9c8..e1a18164e 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -149,10 +149,12 @@ + + diff --git a/MediaBrowser.Controller/Persistence/IItemRepository.cs b/MediaBrowser.Controller/Persistence/IItemRepository.cs index aa5376ec3..7c02a0ea1 100644 --- a/MediaBrowser.Controller/Persistence/IItemRepository.cs +++ b/MediaBrowser.Controller/Persistence/IItemRepository.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Persistence { @@ -102,13 +103,6 @@ namespace MediaBrowser.Controller.Persistence /// IEnumerable{ChildDefinition}. IEnumerable GetChildren(Guid parentId); - /// - /// Gets the type of the items of. - /// - /// The type. - /// IEnumerable{Guid}. - IEnumerable GetItemIdsOfType(Type type); - /// /// Saves the children. /// @@ -135,11 +129,24 @@ namespace MediaBrowser.Controller.Persistence Task SaveMediaStreams(Guid id, IEnumerable streams, CancellationToken cancellationToken); /// - /// Gets the type of the items of. + /// Gets the item ids. /// - /// The type. - /// IEnumerable<BaseItem>. - IEnumerable GetItemsOfType(Type type); + /// The query. + /// IEnumerable<Guid>. + QueryResult GetItemIds(InternalItemsQuery query); + /// + /// Gets the items. + /// + /// The query. + /// QueryResult<BaseItem>. + QueryResult GetItems(InternalItemsQuery query); + + /// + /// Gets the item ids list. + /// + /// The query. + /// List<Guid>. + List GetItemIdsList(InternalItemsQuery query); } } -- cgit v1.2.3