aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Channels/Channel.cs2
-rw-r--r--MediaBrowser.Controller/Channels/ChannelAudioItem.cs102
-rw-r--r--MediaBrowser.Controller/Channels/ChannelFolderItem.cs90
-rw-r--r--MediaBrowser.Controller/Channels/ChannelVideoItem.cs128
-rw-r--r--MediaBrowser.Controller/Channels/IChannelItem.cs11
-rw-r--r--MediaBrowser.Controller/Channels/IChannelMediaItem.cs18
-rw-r--r--MediaBrowser.Controller/Entities/AggregateFolder.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Audio/Audio.cs3
-rw-r--r--MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs8
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicGenre.cs2
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs56
-rw-r--r--MediaBrowser.Controller/Entities/Book.cs2
-rw-r--r--MediaBrowser.Controller/Entities/CollectionFolder.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs27
-rw-r--r--MediaBrowser.Controller/Entities/Game.cs1
-rw-r--r--MediaBrowser.Controller/Entities/GameGenre.cs2
-rw-r--r--MediaBrowser.Controller/Entities/IHasImages.cs7
-rw-r--r--MediaBrowser.Controller/Entities/IHasMetadata.cs9
-rw-r--r--MediaBrowser.Controller/Entities/IHasProgramAttributes.cs1
-rw-r--r--MediaBrowser.Controller/Entities/IHasTrailers.cs12
-rw-r--r--MediaBrowser.Controller/Entities/IHiddenFromDisplay.cs8
-rw-r--r--MediaBrowser.Controller/Entities/Movies/Movie.cs14
-rw-r--r--MediaBrowser.Controller/Entities/MusicVideo.cs3
-rw-r--r--MediaBrowser.Controller/Entities/Photo.cs4
-rw-r--r--MediaBrowser.Controller/Entities/PhotoAlbum.cs6
-rw-r--r--MediaBrowser.Controller/Entities/TV/Episode.cs7
-rw-r--r--MediaBrowser.Controller/Entities/TV/Season.cs10
-rw-r--r--MediaBrowser.Controller/Entities/TV/Series.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Trailer.cs9
-rw-r--r--MediaBrowser.Controller/Entities/User.cs1
-rw-r--r--MediaBrowser.Controller/Entities/UserRootFolder.cs3
-rw-r--r--MediaBrowser.Controller/Entities/UserView.cs2
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs24
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs20
-rw-r--r--MediaBrowser.Controller/IO/FileData.cs4
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs2
-rw-r--r--MediaBrowser.Controller/Library/ItemResolveArgs.cs7
-rw-r--r--MediaBrowser.Controller/Library/LibraryManagerExtensions.cs1
-rw-r--r--MediaBrowser.Controller/LiveTv/ChannelInfo.cs4
-rw-r--r--MediaBrowser.Controller/LiveTv/ILiveTvManager.cs3
-rw-r--r--MediaBrowser.Controller/LiveTv/LiveTvAudioRecording.cs1
-rw-r--r--MediaBrowser.Controller/LiveTv/LiveTvChannel.cs2
-rw-r--r--MediaBrowser.Controller/LiveTv/LiveTvProgram.cs3
-rw-r--r--MediaBrowser.Controller/LiveTv/LiveTvVideoRecording.cs1
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj5
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs3
-rw-r--r--MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs2
-rw-r--r--MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs1
-rw-r--r--MediaBrowser.Controller/Net/IWebSocketListener.cs3
-rw-r--r--MediaBrowser.Controller/Providers/DirectoryService.cs1
-rw-r--r--MediaBrowser.Controller/Providers/IDirectoryService.cs2
-rw-r--r--MediaBrowser.Controller/Providers/IHasItemChangeMonitor.cs3
-rw-r--r--MediaBrowser.Controller/Providers/IMetadataProvider.cs1
-rw-r--r--MediaBrowser.Controller/Providers/IProviderRepository.cs1
-rw-r--r--MediaBrowser.Controller/Providers/ISeriesOrderManager.cs6
-rw-r--r--MediaBrowser.Controller/Providers/LocalImageInfo.cs2
-rw-r--r--MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs4
-rw-r--r--MediaBrowser.Controller/Providers/TrailerInfo.cs2
-rw-r--r--MediaBrowser.Controller/RelatedMedia/IRelatedMediaProvider.cs8
-rw-r--r--MediaBrowser.Controller/Resolvers/IItemResolver.cs2
-rw-r--r--MediaBrowser.Controller/Sorting/SortHelper.cs8
-rw-r--r--MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs1
-rw-r--r--MediaBrowser.Controller/Sync/ISyncManager.cs1
63 files changed, 137 insertions, 545 deletions
diff --git a/MediaBrowser.Controller/Channels/Channel.cs b/MediaBrowser.Controller/Channels/Channel.cs
index 43f7b6637..718a0d878 100644
--- a/MediaBrowser.Controller/Channels/Channel.cs
+++ b/MediaBrowser.Controller/Channels/Channel.cs
@@ -38,7 +38,7 @@ namespace MediaBrowser.Controller.Channels
set { }
}
- public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+ protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
try
{
diff --git a/MediaBrowser.Controller/Channels/ChannelAudioItem.cs b/MediaBrowser.Controller/Channels/ChannelAudioItem.cs
deleted file mode 100644
index bcb2dc234..000000000
--- a/MediaBrowser.Controller/Channels/ChannelAudioItem.cs
+++ /dev/null
@@ -1,102 +0,0 @@
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Model.Channels;
-using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Dto;
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Users;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Threading;
-
-namespace MediaBrowser.Controller.Channels
-{
- public class ChannelAudioItem : Audio
- {
- public ChannelMediaContentType ContentType { get; set; }
-
- public List<ChannelMediaInfo> ChannelMediaSources { get; set; }
-
- public override UnratedItem GetBlockUnratedType()
- {
- return UnratedItem.ChannelContent;
- }
-
- protected override string CreateUserDataKey()
- {
- return ExternalId;
- }
-
- [IgnoreDataMember]
- public override bool SupportsLocalMetadata
- {
- get
- {
- return false;
- }
- }
-
- public override bool IsSaveLocalMetadataEnabled()
- {
- return false;
- }
-
- public ChannelAudioItem()
- {
- ChannelMediaSources = new List<ChannelMediaInfo>();
- }
-
- [IgnoreDataMember]
- public override LocationType LocationType
- {
- get
- {
- if (string.IsNullOrEmpty(Path))
- {
- return LocationType.Remote;
- }
-
- return base.LocationType;
- }
- }
-
- protected override string GetInternalMetadataPath(string basePath)
- {
- return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));
- }
-
- public override IEnumerable<MediaSourceInfo> GetMediaSources(bool enablePathSubstitution)
- {
- var sources = ChannelManager.GetStaticMediaSources(this, false, CancellationToken.None)
- .Result.ToList();
-
- if (sources.Count > 0)
- {
- return sources;
- }
-
- var list = base.GetMediaSources(enablePathSubstitution).ToList();
-
- foreach (var mediaSource in list)
- {
- if (string.IsNullOrWhiteSpace(mediaSource.Path))
- {
- mediaSource.Type = MediaSourceType.Placeholder;
- }
- }
-
- return list;
- }
-
- public override bool CanDelete()
- {
- return false;
- }
-
- public override bool IsVisibleStandalone(User user)
- {
- return IsVisibleStandaloneInternal(user, false) && ChannelVideoItem.IsChannelVisible(this, user);
- }
- }
-}
diff --git a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
deleted file mode 100644
index 174cd282a..000000000
--- a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Model.Channels;
-using MediaBrowser.Model.Querying;
-using MediaBrowser.Model.Users;
-using System;
-using System.Runtime.Serialization;
-using System.Threading;
-using System.Threading.Tasks;
-using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Entities;
-
-namespace MediaBrowser.Controller.Channels
-{
- public class ChannelFolderItem : Folder
- {
- public ChannelFolderType ChannelFolderType { get; set; }
-
- protected override bool GetBlockUnratedValue(UserPolicy config)
- {
- // Don't block.
- return false;
- }
-
- public override UnratedItem GetBlockUnratedType()
- {
- return UnratedItem.ChannelContent;
- }
-
- [IgnoreDataMember]
- public override bool SupportsLocalMetadata
- {
- get
- {
- return false;
- }
- }
-
- public override bool IsSaveLocalMetadataEnabled()
- {
- return false;
- }
-
- protected override string CreateUserDataKey()
- {
- return ExternalId;
- }
-
- public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
- {
- try
- {
- // Don't blow up here because it could cause parent screens with other content to fail
- return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
- {
- ChannelId = ChannelId,
- FolderId = Id.ToString("N"),
- Limit = query.Limit,
- StartIndex = query.StartIndex,
- UserId = query.User.Id.ToString("N"),
- SortBy = query.SortBy,
- SortOrder = query.SortOrder
-
- }, new Progress<double>(), CancellationToken.None);
- }
- catch
- {
- // Already logged at lower levels
- return new QueryResult<BaseItem>
- {
-
- };
- }
- }
-
- protected override string GetInternalMetadataPath(string basePath)
- {
- return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));
- }
-
- public override bool CanDelete()
- {
- return false;
- }
-
- public override bool IsVisibleStandalone(User user)
- {
- return IsVisibleStandaloneInternal(user, false) && ChannelVideoItem.IsChannelVisible(this, user);
- }
- }
-}
diff --git a/MediaBrowser.Controller/Channels/ChannelVideoItem.cs b/MediaBrowser.Controller/Channels/ChannelVideoItem.cs
deleted file mode 100644
index e12a84ba2..000000000
--- a/MediaBrowser.Controller/Channels/ChannelVideoItem.cs
+++ /dev/null
@@ -1,128 +0,0 @@
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Channels;
-using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Dto;
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Users;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Threading;
-
-namespace MediaBrowser.Controller.Channels
-{
- public class ChannelVideoItem : Video
- {
- public ChannelMediaContentType ContentType { get; set; }
-
- public List<ChannelMediaInfo> ChannelMediaSources { get; set; }
-
- protected override string CreateUserDataKey()
- {
- if (ContentType == ChannelMediaContentType.MovieExtra)
- {
- var key = this.GetProviderId(MetadataProviders.Imdb) ?? this.GetProviderId(MetadataProviders.Tmdb);
-
- if (!string.IsNullOrWhiteSpace(key))
- {
- key = key + "-" + ExtraType.ToString().ToLower();
-
- // Make sure different trailers have their own data.
- if (RunTimeTicks.HasValue)
- {
- key += "-" + RunTimeTicks.Value.ToString(CultureInfo.InvariantCulture);
- }
-
- return key;
- }
- }
-
- return ExternalId;
- }
-
- public override UnratedItem GetBlockUnratedType()
- {
- return UnratedItem.ChannelContent;
- }
-
- [IgnoreDataMember]
- public override bool SupportsLocalMetadata
- {
- get
- {
- return false;
- }
- }
-
- public override bool IsSaveLocalMetadataEnabled()
- {
- return false;
- }
-
- public ChannelVideoItem()
- {
- ChannelMediaSources = new List<ChannelMediaInfo>();
- }
-
- [IgnoreDataMember]
- public override LocationType LocationType
- {
- get
- {
- if (string.IsNullOrEmpty(Path))
- {
- return LocationType.Remote;
- }
-
- return base.LocationType;
- }
- }
-
- public override IEnumerable<MediaSourceInfo> GetMediaSources(bool enablePathSubstitution)
- {
- var sources = ChannelManager.GetStaticMediaSources(this, false, CancellationToken.None)
- .Result.ToList();
-
- if (sources.Count > 0)
- {
- return sources;
- }
-
- var list = base.GetMediaSources(enablePathSubstitution).ToList();
-
- foreach (var mediaSource in list)
- {
- if (string.IsNullOrWhiteSpace(mediaSource.Path))
- {
- mediaSource.Type = MediaSourceType.Placeholder;
- }
- }
-
- return list;
- }
-
- protected override string GetInternalMetadataPath(string basePath)
- {
- return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));
- }
-
- public override bool CanDelete()
- {
- return false;
- }
-
- public override bool IsVisibleStandalone(User user)
- {
- return IsVisibleStandaloneInternal(user, false) && IsChannelVisible(this, user);
- }
-
- internal static bool IsChannelVisible(BaseItem item, User user)
- {
- var channel = ChannelManager.GetChannel(item.ChannelId);
-
- return channel.IsVisible(user);
- }
- }
-}
diff --git a/MediaBrowser.Controller/Channels/IChannelItem.cs b/MediaBrowser.Controller/Channels/IChannelItem.cs
deleted file mode 100644
index 9b5f0359b..000000000
--- a/MediaBrowser.Controller/Channels/IChannelItem.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using MediaBrowser.Controller.Entities;
-
-namespace MediaBrowser.Controller.Channels
-{
- public interface IChannelItem : IHasImages, IHasTags
- {
- string ChannelId { get; set; }
-
- string ExternalId { get; set; }
- }
-}
diff --git a/MediaBrowser.Controller/Channels/IChannelMediaItem.cs b/MediaBrowser.Controller/Channels/IChannelMediaItem.cs
deleted file mode 100644
index 60a29da90..000000000
--- a/MediaBrowser.Controller/Channels/IChannelMediaItem.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using MediaBrowser.Model.Channels;
-using MediaBrowser.Model.Entities;
-using System.Collections.Generic;
-
-namespace MediaBrowser.Controller.Channels
-{
- public interface IChannelMediaItem : IChannelItem
- {
- long? RunTimeTicks { get; set; }
- string MediaType { get; }
-
- ChannelMediaContentType ContentType { get; set; }
-
- ExtraType? ExtraType { get; set; }
-
- List<ChannelMediaInfo> ChannelMediaSources { get; set; }
- }
-} \ No newline at end of file
diff --git a/MediaBrowser.Controller/Entities/AggregateFolder.cs b/MediaBrowser.Controller/Entities/AggregateFolder.cs
index f843b10e4..018ff6da0 100644
--- a/MediaBrowser.Controller/Entities/AggregateFolder.cs
+++ b/MediaBrowser.Controller/Entities/AggregateFolder.cs
@@ -3,11 +3,9 @@ using MediaBrowser.Controller.Library;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using CommonIO;
-using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Providers;
namespace MediaBrowser.Controller.Entities
diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs
index 4c66a6562..929308ba0 100644
--- a/MediaBrowser.Controller/Entities/Audio/Audio.cs
+++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs
@@ -3,7 +3,6 @@ using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.MediaInfo;
-using MediaBrowser.Model.Users;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -191,7 +190,7 @@ namespace MediaBrowser.Controller.Entities.Audio
if (IndexNumber.HasValue)
{
var songKey = (ParentIndexNumber != null ? ParentIndexNumber.Value.ToString("0000 - ") : "")
- + (IndexNumber.Value.ToString("0000 - "));
+ + IndexNumber.Value.ToString("0000 - ");
return parentKey + songKey;
}
diff --git a/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs b/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs
index 983cc0100..9072e1094 100644
--- a/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs
+++ b/MediaBrowser.Controller/Entities/Audio/AudioPodcast.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Controller.Entities.Audio
+namespace MediaBrowser.Controller.Entities.Audio
{
public class AudioPodcast : Audio
{
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
index 5f24dbf67..45304d47e 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
@@ -69,7 +69,7 @@ namespace MediaBrowser.Controller.Entities.Audio
public Func<BaseItem, bool> GetItemFilter()
{
- return i => (i is IHasMusicGenres) && i.Genres.Contains(Name, StringComparer.OrdinalIgnoreCase);
+ return i => i is IHasMusicGenres && i.Genres.Contains(Name, StringComparer.OrdinalIgnoreCase);
}
[IgnoreDataMember]
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index a85ab621d..26aae285d 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -255,6 +255,11 @@ namespace MediaBrowser.Controller.Entities
if (string.IsNullOrWhiteSpace(Path))
{
+ if (SourceType == SourceType.Channel)
+ {
+ return LocationType.Remote;
+ }
+
return LocationType.Virtual;
}
@@ -301,13 +306,13 @@ namespace MediaBrowser.Controller.Entities
}
}
- private List<Tuple<StringBuilder,bool>> GetSortChunks(string s1)
+ private List<Tuple<StringBuilder, bool>> GetSortChunks(string s1)
{
var list = new List<Tuple<StringBuilder, bool>>();
int thisMarker = 0, thisNumericChunk = 0;
- while ((thisMarker < s1.Length))
+ while (thisMarker < s1.Length)
{
if (thisMarker >= s1.Length)
{
@@ -407,6 +412,9 @@ namespace MediaBrowser.Controller.Entities
[IgnoreDataMember]
public DateTime DateLastRefreshed { get; set; }
+ [IgnoreDataMember]
+ public DateTime? DateModifiedDuringLastRefresh { get; set; }
+
/// <summary>
/// The logger
/// </summary>
@@ -494,7 +502,19 @@ namespace MediaBrowser.Controller.Entities
{
get
{
- return _sortName ?? (_sortName = CreateSortName());
+ if (_sortName == null)
+ {
+ if (!string.IsNullOrWhiteSpace(ForcedSortName))
+ {
+ // Need the ToLower because that's what CreateSortName does
+ _sortName = ModifySortChunks(ForcedSortName).ToLower();
+ }
+ else
+ {
+ _sortName = CreateSortName();
+ }
+ }
+ return _sortName;
}
set
{
@@ -529,11 +549,6 @@ namespace MediaBrowser.Controller.Entities
/// <returns>System.String.</returns>
protected virtual string CreateSortName()
{
- if (!string.IsNullOrWhiteSpace(ForcedSortName))
- {
- return ModifySortChunks(ForcedSortName).ToLower();
- }
-
if (Name == null) return null; //some items may not have name filled in properly
if (!EnableAlphaNumericSorting)
@@ -653,9 +668,30 @@ namespace MediaBrowser.Controller.Entities
}
[IgnoreDataMember]
- public virtual BaseItem DisplayParent
+ public virtual Guid? DisplayParentId
+ {
+ get
+ {
+ if (ParentId == Guid.Empty)
+ {
+ return null;
+ }
+ return ParentId;
+ }
+ }
+
+ [IgnoreDataMember]
+ public BaseItem DisplayParent
{
- get { return GetParent(); }
+ get
+ {
+ var id = DisplayParentId;
+ if (!id.HasValue)
+ {
+ return null;
+ }
+ return LibraryManager.GetItemById(id.Value);
+ }
}
/// <summary>
diff --git a/MediaBrowser.Controller/Entities/Book.cs b/MediaBrowser.Controller/Entities/Book.cs
index 5ef098ff8..1c86a53f0 100644
--- a/MediaBrowser.Controller/Entities/Book.cs
+++ b/MediaBrowser.Controller/Entities/Book.cs
@@ -1,10 +1,8 @@
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
-using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Users;
namespace MediaBrowser.Controller.Entities
{
diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs
index b2c7c2fa8..429700327 100644
--- a/MediaBrowser.Controller/Entities/CollectionFolder.cs
+++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs
@@ -3,13 +3,11 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.Entities
{
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index bec8cd28b..f4cdc8fa1 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -6,7 +6,6 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
using System;
-using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -14,9 +13,6 @@ using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.Entities.Movies;
-using MediaBrowser.Controller.Playlists;
using MediaBrowser.Model.Channels;
namespace MediaBrowser.Controller.Entities
@@ -115,7 +111,7 @@ namespace MediaBrowser.Controller.Entities
[IgnoreDataMember]
protected virtual bool SupportsShortcutChildren
{
- get { return ConfigurationManager.Configuration.EnableWindowsShortcuts; }
+ get { return false; }
}
/// <summary>
@@ -500,7 +496,7 @@ namespace MediaBrowser.Controller.Entities
var innerProgress = new ActionableProgress<double>();
- innerProgress.RegisterAction(p => progress.Report((.80 * p) + 20));
+ innerProgress.RegisterAction(p => progress.Report(.80 * p + 20));
if (container != null)
{
@@ -634,7 +630,7 @@ namespace MediaBrowser.Controller.Entities
var percent = percentages.Values.Sum();
percent /= childCount;
- progress.Report((10 * percent) + 10);
+ progress.Report(10 * percent + 10);
}
});
@@ -1126,7 +1122,18 @@ namespace MediaBrowser.Controller.Entities
return false;
}
- public virtual async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+ public Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+ {
+ if (query.ItemIds.Length > 0)
+ {
+ var specificItems = query.ItemIds.Select(LibraryManager.GetItemById).Where(i => i != null).ToList();
+ return Task.FromResult(PostFilterAndSort(specificItems, query));
+ }
+
+ return GetItemsInternal(query);
+ }
+
+ protected virtual async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
if (SourceType == SourceType.Channel)
{
@@ -1179,9 +1186,7 @@ namespace MediaBrowser.Controller.Entities
: GetChildren(user, true).Where(filter);
}
- var result = PostFilterAndSort(items, query);
-
- return result;
+ return PostFilterAndSort(items, query);
}
protected QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items, InternalItemsQuery query)
diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs
index e073d09f6..e597b2a15 100644
--- a/MediaBrowser.Controller/Entities/Game.cs
+++ b/MediaBrowser.Controller/Entities/Game.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Users;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/MediaBrowser.Controller/Entities/GameGenre.cs b/MediaBrowser.Controller/Entities/GameGenre.cs
index bf448da0d..d2b6b4856 100644
--- a/MediaBrowser.Controller/Entities/GameGenre.cs
+++ b/MediaBrowser.Controller/Entities/GameGenre.cs
@@ -60,7 +60,7 @@ namespace MediaBrowser.Controller.Entities
public Func<BaseItem, bool> GetItemFilter()
{
- return i => (i is Game) && i.Genres.Contains(Name, StringComparer.OrdinalIgnoreCase);
+ return i => i is Game && i.Genres.Contains(Name, StringComparer.OrdinalIgnoreCase);
}
[IgnoreDataMember]
diff --git a/MediaBrowser.Controller/Entities/IHasImages.cs b/MediaBrowser.Controller/Entities/IHasImages.cs
index 28835168a..897250caa 100644
--- a/MediaBrowser.Controller/Entities/IHasImages.cs
+++ b/MediaBrowser.Controller/Entities/IHasImages.cs
@@ -1,11 +1,10 @@
-using MediaBrowser.Controller.Providers;
+using System;
+using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using System.Collections.Generic;
-using System.IO;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
-using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Library;
namespace MediaBrowser.Controller.Entities
@@ -208,6 +207,8 @@ namespace MediaBrowser.Controller.Entities
/// <param name="image">The image.</param>
/// <param name="index">The index.</param>
void SetImage(ItemImageInfo image, int index);
+
+ DateTime? DateModifiedDuringLastRefresh { get; set; }
}
public static class HasImagesExtensions
diff --git a/MediaBrowser.Controller/Entities/IHasMetadata.cs b/MediaBrowser.Controller/Entities/IHasMetadata.cs
index 473ee120e..1f680b35f 100644
--- a/MediaBrowser.Controller/Entities/IHasMetadata.cs
+++ b/MediaBrowser.Controller/Entities/IHasMetadata.cs
@@ -1,9 +1,4 @@
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers;
-using System;
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
+using System;
namespace MediaBrowser.Controller.Entities
{
@@ -30,6 +25,8 @@ namespace MediaBrowser.Controller.Entities
/// <value>The date last saved.</value>
DateTime DateLastSaved { get; set; }
+ SourceType SourceType { get; set; }
+
/// <summary>
/// Gets or sets the date last refreshed.
/// </summary>
diff --git a/MediaBrowser.Controller/Entities/IHasProgramAttributes.cs b/MediaBrowser.Controller/Entities/IHasProgramAttributes.cs
index 1c3270d72..106b8bce4 100644
--- a/MediaBrowser.Controller/Entities/IHasProgramAttributes.cs
+++ b/MediaBrowser.Controller/Entities/IHasProgramAttributes.cs
@@ -1,5 +1,4 @@
using MediaBrowser.Model.LiveTv;
-using System;
namespace MediaBrowser.Controller.Entities
{
diff --git a/MediaBrowser.Controller/Entities/IHasTrailers.cs b/MediaBrowser.Controller/Entities/IHasTrailers.cs
index bc1c7d875..e5cbdff72 100644
--- a/MediaBrowser.Controller/Entities/IHasTrailers.cs
+++ b/MediaBrowser.Controller/Entities/IHasTrailers.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
+using System.Linq;
namespace MediaBrowser.Controller.Entities
{
@@ -18,11 +19,20 @@ namespace MediaBrowser.Controller.Entities
/// <value>The local trailer ids.</value>
List<Guid> LocalTrailerIds { get; set; }
List<Guid> RemoteTrailerIds { get; set; }
+ }
+ public static class HasTrailerExtensions
+ {
/// <summary>
/// Gets the trailer ids.
/// </summary>
/// <returns>List&lt;Guid&gt;.</returns>
- List<Guid> GetTrailerIds();
+ public static List<Guid> GetTrailerIds(this IHasTrailers item)
+ {
+ var list = item.LocalTrailerIds.ToList();
+ list.AddRange(item.RemoteTrailerIds);
+ return list;
+ }
+
}
}
diff --git a/MediaBrowser.Controller/Entities/IHiddenFromDisplay.cs b/MediaBrowser.Controller/Entities/IHiddenFromDisplay.cs
index 82d581fcf..ba6311296 100644
--- a/MediaBrowser.Controller/Entities/IHiddenFromDisplay.cs
+++ b/MediaBrowser.Controller/Entities/IHiddenFromDisplay.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Controller.Entities
+namespace MediaBrowser.Controller.Entities
{
public interface IHiddenFromDisplay
{
diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs
index 4c31356d0..4d2ca9ffe 100644
--- a/MediaBrowser.Controller/Entities/Movies/Movie.cs
+++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs
@@ -1,16 +1,13 @@
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Users;
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.Entities.Movies
{
@@ -82,17 +79,6 @@ namespace MediaBrowser.Controller.Entities.Movies
}
/// <summary>
- /// Gets the trailer ids.
- /// </summary>
- /// <returns>List&lt;Guid&gt;.</returns>
- public List<Guid> GetTrailerIds()
- {
- var list = LocalTrailerIds.ToList();
- list.AddRange(RemoteTrailerIds);
- return list;
- }
-
- /// <summary>
/// Gets the user data key.
/// </summary>
/// <returns>System.String.</returns>
diff --git a/MediaBrowser.Controller/Entities/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs
index 8a820b5ff..b52f16a46 100644
--- a/MediaBrowser.Controller/Entities/MusicVideo.cs
+++ b/MediaBrowser.Controller/Entities/MusicVideo.cs
@@ -2,11 +2,8 @@
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
-using System;
using System.Collections.Generic;
-using System.Linq;
using System.Runtime.Serialization;
-using MediaBrowser.Model.Users;
namespace MediaBrowser.Controller.Entities
{
diff --git a/MediaBrowser.Controller/Entities/Photo.cs b/MediaBrowser.Controller/Entities/Photo.cs
index aa9e44297..3358ccc6f 100644
--- a/MediaBrowser.Controller/Entities/Photo.cs
+++ b/MediaBrowser.Controller/Entities/Photo.cs
@@ -1,9 +1,7 @@
-using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Drawing;
+using MediaBrowser.Model.Drawing;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
-using MediaBrowser.Model.Users;
namespace MediaBrowser.Controller.Entities
{
diff --git a/MediaBrowser.Controller/Entities/PhotoAlbum.cs b/MediaBrowser.Controller/Entities/PhotoAlbum.cs
index 1f4faaf49..c8ab67a69 100644
--- a/MediaBrowser.Controller/Entities/PhotoAlbum.cs
+++ b/MediaBrowser.Controller/Entities/PhotoAlbum.cs
@@ -1,11 +1,7 @@
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Users;
-using System;
using System.Linq;
using System.Runtime.Serialization;
-using System.Threading;
-using System.Threading.Tasks;
namespace MediaBrowser.Controller.Entities
{
diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs
index d4f829917..ec65221bc 100644
--- a/MediaBrowser.Controller/Entities/TV/Episode.cs
+++ b/MediaBrowser.Controller/Entities/TV/Episode.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Users;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -91,11 +90,11 @@ namespace MediaBrowser.Controller.Entities.TV
}
[IgnoreDataMember]
- public override BaseItem DisplayParent
+ public override Guid? DisplayParentId
{
get
{
- return Season ?? GetParent();
+ return SeasonId;
}
}
@@ -176,7 +175,7 @@ namespace MediaBrowser.Controller.Entities.TV
/// <returns>System.String.</returns>
protected override string CreateSortName()
{
- return (ParentIndexNumber != null ? ParentIndexNumber.Value.ToString("000-") : "")
+ return (ParentIndexNumber != null ? ParentIndexNumber.Value.ToString("000 - ") : "")
+ (IndexNumber != null ? IndexNumber.Value.ToString("0000 - ") : "") + Name;
}
diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs
index 9efa609ef..acd02e8ab 100644
--- a/MediaBrowser.Controller/Entities/TV/Season.cs
+++ b/MediaBrowser.Controller/Entities/TV/Season.cs
@@ -33,9 +33,13 @@ namespace MediaBrowser.Controller.Entities.TV
}
[IgnoreDataMember]
- public override BaseItem DisplayParent
+ public override Guid? DisplayParentId
{
- get { return Series ?? GetParent(); }
+ get
+ {
+ var series = Series;
+ return series == null ? ParentId : series.Id;
+ }
}
// Genre, Rating and Stuido will all be the same
@@ -129,7 +133,7 @@ namespace MediaBrowser.Controller.Entities.TV
get { return (IndexNumber ?? -1) == 0; }
}
- public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+ protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
var user = query.User;
diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs
index aa07ab378..9eeb89a1f 100644
--- a/MediaBrowser.Controller/Entities/TV/Series.cs
+++ b/MediaBrowser.Controller/Entities/TV/Series.cs
@@ -157,7 +157,7 @@ namespace MediaBrowser.Controller.Entities.TV
return GetSeasons(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
}
- public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+ protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
var user = query.User;
diff --git a/MediaBrowser.Controller/Entities/Trailer.cs b/MediaBrowser.Controller/Entities/Trailer.cs
index 9d5ef2035..c3e24090c 100644
--- a/MediaBrowser.Controller/Entities/Trailer.cs
+++ b/MediaBrowser.Controller/Entities/Trailer.cs
@@ -1,11 +1,8 @@
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Users;
-using System;
using System.Collections.Generic;
using System.Globalization;
-using System.Linq;
using System.Runtime.Serialization;
using MediaBrowser.Controller.Entities.Movies;
@@ -24,11 +21,11 @@ namespace MediaBrowser.Controller.Entities
Taglines = new List<string>();
Keywords = new List<string>();
ProductionLocations = new List<string>();
- TrailerTypes = new List<TrailerType>();
+ TrailerTypes = new List<TrailerType> { TrailerType.LocalTrailer };
}
public List<TrailerType> TrailerTypes { get; set; }
-
+
public float? Metascore { get; set; }
public List<MediaUrl> RemoteTrailers { get; set; }
@@ -89,7 +86,7 @@ namespace MediaBrowser.Controller.Entities
var info = GetItemLookupInfo<TrailerInfo>();
info.IsLocalTrailer = TrailerTypes.Contains(TrailerType.LocalTrailer);
-
+
if (!IsInMixedFolder)
{
info.Name = System.IO.Path.GetFileName(ContainingFolderPath);
diff --git a/MediaBrowser.Controller/Entities/User.cs b/MediaBrowser.Controller/Entities/User.cs
index 6c9266d74..e5b39003d 100644
--- a/MediaBrowser.Controller/Entities/User.cs
+++ b/MediaBrowser.Controller/Entities/User.cs
@@ -5,7 +5,6 @@ using MediaBrowser.Model.Connect;
using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.Users;
using System;
-using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
diff --git a/MediaBrowser.Controller/Entities/UserRootFolder.cs b/MediaBrowser.Controller/Entities/UserRootFolder.cs
index 104408860..8ce39c697 100644
--- a/MediaBrowser.Controller/Entities/UserRootFolder.cs
+++ b/MediaBrowser.Controller/Entities/UserRootFolder.cs
@@ -8,6 +8,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Controller.Library;
namespace MediaBrowser.Controller.Entities
{
@@ -17,7 +18,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
public class UserRootFolder : Folder
{
- public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+ protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
if (query.Recursive)
{
diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs
index 41c19f11d..40fec3e28 100644
--- a/MediaBrowser.Controller/Entities/UserView.cs
+++ b/MediaBrowser.Controller/Entities/UserView.cs
@@ -45,7 +45,7 @@ namespace MediaBrowser.Controller.Entities
return list;
}
- public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+ protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
var parent = this as Folder;
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index a74859a46..2df2227bc 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -363,14 +363,14 @@ namespace MediaBrowser.Controller.Entities
private QueryResult<BaseItem> GetMusicAlbums(Folder parent, User user, InternalItemsQuery query)
{
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }, i => (i is MusicAlbum) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }, i => i is MusicAlbum && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
private QueryResult<BaseItem> GetMusicSongs(Folder parent, User user, InternalItemsQuery query)
{
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }, i => (i is Audio.Audio) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }, i => i is Audio.Audio && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
@@ -382,7 +382,7 @@ namespace MediaBrowser.Controller.Entities
UserId = user.Id.ToString("N"),
Limit = GetSpecialItemsLimit(),
IncludeItemTypes = new[] { typeof(Audio.Audio).Name },
- ParentId = (parent == null ? null : parent.Id.ToString("N")),
+ ParentId = parent == null ? null : parent.Id.ToString("N"),
GroupItems = true
}).Select(i => i.Item1 ?? i.Item2.FirstOrDefault()).Where(i => i != null);
@@ -398,7 +398,7 @@ namespace MediaBrowser.Controller.Entities
{
query.IsFavorite = true;
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music }, i => (i is Audio.Audio) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music }, i => i is Audio.Audio && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
@@ -407,7 +407,7 @@ namespace MediaBrowser.Controller.Entities
{
query.IsFavorite = true;
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music }, i => (i is MusicAlbum) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music }, i => i is MusicAlbum && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
@@ -459,7 +459,7 @@ namespace MediaBrowser.Controller.Entities
{
query.IsFavorite = true;
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => (i is Movie) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is Movie && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
@@ -468,7 +468,7 @@ namespace MediaBrowser.Controller.Entities
{
query.IsFavorite = true;
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => (i is Series) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => i is Series && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
@@ -477,21 +477,21 @@ namespace MediaBrowser.Controller.Entities
{
query.IsFavorite = true;
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => (i is Episode) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => i is Episode && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
private QueryResult<BaseItem> GetMovieMovies(Folder parent, User user, InternalItemsQuery query)
{
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => (i is Movie) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is Movie && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
private QueryResult<BaseItem> GetMovieCollections(Folder parent, User user, InternalItemsQuery query)
{
- var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => (i is BoxSet) && FilterItem(i, query));
+ var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is BoxSet && FilterItem(i, query));
return PostFilterAndSort(items, parent, null, query);
}
@@ -1516,7 +1516,7 @@ namespace MediaBrowser.Controller.Entities
}
// Apply genre filter
- if (query.Genres.Length > 0 && !(query.Genres.Any(v => item.Genres.Contains(v, StringComparer.OrdinalIgnoreCase))))
+ if (query.Genres.Length > 0 && !query.Genres.Any(v => item.Genres.Contains(v, StringComparer.OrdinalIgnoreCase)))
{
return false;
}
@@ -1603,7 +1603,7 @@ namespace MediaBrowser.Controller.Entities
{
return false;
}
- if (!(tags.Any(v => hasTags.Tags.Contains(v, StringComparer.OrdinalIgnoreCase))))
+ if (!tags.Any(v => hasTags.Tags.Contains(v, StringComparer.OrdinalIgnoreCase)))
{
return false;
}
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index 3b1da85b5..2c7d3856b 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -7,14 +7,11 @@ using MediaBrowser.Model.MediaInfo;
using System;
using System.Collections.Generic;
using System.Globalization;
-using System.IO;
using System.Linq;
-using System.Net.Mime;
using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
-using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Channels;
namespace MediaBrowser.Controller.Entities
@@ -83,23 +80,6 @@ namespace MediaBrowser.Controller.Entities
}
[IgnoreDataMember]
- public override LocationType LocationType
- {
- get
- {
- if (SourceType == SourceType.Channel)
- {
- if (string.IsNullOrEmpty(Path))
- {
- return LocationType.Remote;
- }
- }
-
- return base.LocationType;
- }
- }
-
- [IgnoreDataMember]
public override bool SupportsAddingToPlaylist
{
get { return LocationType == LocationType.FileSystem && RunTimeTicks.HasValue; }
diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs
index ed5acbb3d..6e7e60f88 100644
--- a/MediaBrowser.Controller/IO/FileData.cs
+++ b/MediaBrowser.Controller/IO/FileData.cs
@@ -1,10 +1,8 @@
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
-using System.IO;
using CommonIO;
namespace MediaBrowser.Controller.IO
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index 752ac2dad..c8b3d5131 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -8,11 +8,9 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
using System;
using System.Collections.Generic;
-using System.IO;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.Library
{
diff --git a/MediaBrowser.Controller/Library/ItemResolveArgs.cs b/MediaBrowser.Controller/Library/ItemResolveArgs.cs
index 9084ea56b..ea3199b31 100644
--- a/MediaBrowser.Controller/Library/ItemResolveArgs.cs
+++ b/MediaBrowser.Controller/Library/ItemResolveArgs.cs
@@ -5,7 +5,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.Library
{
@@ -118,8 +117,8 @@ namespace MediaBrowser.Controller.Library
var parentDir = System.IO.Path.GetDirectoryName(Path) ?? string.Empty;
- return (parentDir.Length > _appPaths.RootFolderPath.Length
- && parentDir.StartsWith(_appPaths.RootFolderPath, StringComparison.OrdinalIgnoreCase));
+ return parentDir.Length > _appPaths.RootFolderPath.Length
+ && parentDir.StartsWith(_appPaths.RootFolderPath, StringComparison.OrdinalIgnoreCase);
}
}
@@ -280,7 +279,7 @@ namespace MediaBrowser.Controller.Library
/// <returns><c>true</c> if the specified <see cref="System.Object" /> is equal to this instance; otherwise, <c>false</c>.</returns>
public override bool Equals(object obj)
{
- return (Equals(obj as ItemResolveArgs));
+ return Equals(obj as ItemResolveArgs);
}
/// <summary>
diff --git a/MediaBrowser.Controller/Library/LibraryManagerExtensions.cs b/MediaBrowser.Controller/Library/LibraryManagerExtensions.cs
index 4c9831bf9..ec69bea6e 100644
--- a/MediaBrowser.Controller/Library/LibraryManagerExtensions.cs
+++ b/MediaBrowser.Controller/Library/LibraryManagerExtensions.cs
@@ -1,5 +1,4 @@
using System;
-using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Controller.Library
diff --git a/MediaBrowser.Controller/LiveTv/ChannelInfo.cs b/MediaBrowser.Controller/LiveTv/ChannelInfo.cs
index 7d8df96ed..372b095fd 100644
--- a/MediaBrowser.Controller/LiveTv/ChannelInfo.cs
+++ b/MediaBrowser.Controller/LiveTv/ChannelInfo.cs
@@ -59,5 +59,9 @@ namespace MediaBrowser.Controller.LiveTv
/// </summary>
/// <value><c>null</c> if [is favorite] contains no value, <c>true</c> if [is favorite]; otherwise, <c>false</c>.</value>
public bool? IsFavorite { get; set; }
+
+ public bool? IsHD { get; set; }
+ public string AudioCodec { get; set; }
+ public string VideoCodec { get; set; }
}
}
diff --git a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs
index 4cc7b27ea..a4bd32fff 100644
--- a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs
+++ b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs
@@ -1,5 +1,4 @@
using System;
-using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Dto;
@@ -384,5 +383,7 @@ namespace MediaBrowser.Controller.LiveTv
/// </summary>
/// <returns>List&lt;NameValuePair&gt;.</returns>
List<NameValuePair> GetSatIniMappings();
+
+ Task<List<ChannelInfo>> GetSatChannelScanResult(TunerHostInfo info, CancellationToken cancellationToken);
}
}
diff --git a/MediaBrowser.Controller/LiveTv/LiveTvAudioRecording.cs b/MediaBrowser.Controller/LiveTv/LiveTvAudioRecording.cs
index 2657ade42..17a27eac1 100644
--- a/MediaBrowser.Controller/LiveTv/LiveTvAudioRecording.cs
+++ b/MediaBrowser.Controller/LiveTv/LiveTvAudioRecording.cs
@@ -4,7 +4,6 @@ using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.LiveTv;
-using MediaBrowser.Model.Users;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs b/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs
index 24ec3f5e1..35b9a1959 100644
--- a/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs
+++ b/MediaBrowser.Controller/LiveTv/LiveTvChannel.cs
@@ -4,9 +4,7 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.MediaInfo;
-using MediaBrowser.Model.Users;
using System.Collections.Generic;
-using System.Linq;
using System.Runtime.Serialization;
namespace MediaBrowser.Controller.LiveTv
diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs
index 684af9974..59b921c6a 100644
--- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs
+++ b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs
@@ -3,11 +3,8 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.LiveTv;
-using MediaBrowser.Model.Users;
using System;
-using System.Linq;
using System.Runtime.Serialization;
-using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.LiveTv
{
diff --git a/MediaBrowser.Controller/LiveTv/LiveTvVideoRecording.cs b/MediaBrowser.Controller/LiveTv/LiveTvVideoRecording.cs
index 6dff66438..f310a957c 100644
--- a/MediaBrowser.Controller/LiveTv/LiveTvVideoRecording.cs
+++ b/MediaBrowser.Controller/LiveTv/LiveTvVideoRecording.cs
@@ -4,7 +4,6 @@ using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.LiveTv;
-using MediaBrowser.Model.Users;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 6f429ed2f..6ff4e39e2 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -75,20 +75,15 @@
</Compile>
<Compile Include="Activity\IActivityManager.cs" />
<Compile Include="Activity\IActivityRepository.cs" />
- <Compile Include="Channels\ChannelAudioItem.cs" />
- <Compile Include="Channels\ChannelFolderItem.cs" />
<Compile Include="Channels\ChannelItemInfo.cs" />
<Compile Include="Channels\ChannelItemResult.cs" />
<Compile Include="Channels\ChannelItemType.cs" />
<Compile Include="Channels\ChannelMediaInfo.cs" />
<Compile Include="Channels\ChannelParentalRating.cs" />
<Compile Include="Channels\ChannelSearchInfo.cs" />
- <Compile Include="Channels\ChannelVideoItem.cs" />
<Compile Include="Channels\IChannel.cs" />
- <Compile Include="Channels\IChannelItem.cs" />
<Compile Include="Channels\IChannelManager.cs" />
<Compile Include="Channels\Channel.cs" />
- <Compile Include="Channels\IChannelMediaItem.cs" />
<Compile Include="Channels\IHasCacheKey.cs" />
<Compile Include="Channels\IIndexableChannel.cs" />
<Compile Include="Channels\InternalAllChannelMediaQuery.cs" />
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs
index ddaf7ff6d..c87ac4e73 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs
@@ -58,8 +58,6 @@ namespace MediaBrowser.Controller.MediaEncoding
}
}
- public bool? Cabac { get; set; }
-
public EncodingJobOptions()
{
@@ -87,7 +85,6 @@ namespace MediaBrowser.Controller.MediaEncoding
MaxRefFrames = info.MaxRefFrames;
MaxVideoBitDepth = info.MaxVideoBitDepth;
SubtitleMethod = info.SubtitleDeliveryMethod;
- Cabac = info.Cabac;
Context = info.Context;
if (info.SubtitleDeliveryMethod != SubtitleDeliveryMethod.External)
diff --git a/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs b/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs
index 826711e51..e538b84d8 100644
--- a/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs
+++ b/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs
@@ -33,6 +33,6 @@ namespace MediaBrowser.Controller.MediaEncoding
/// <param name="protocol">The protocol.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>System.String.</returns>
- Task<string> GetSubtitleFileCharacterSet(string path, MediaProtocol protocol, CancellationToken cancellationToken);
+ Task<string> GetSubtitleFileCharacterSet(string path, string language, MediaProtocol protocol, CancellationToken cancellationToken);
}
}
diff --git a/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs b/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs
index 7985ec054..66a9fa60b 100644
--- a/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs
+++ b/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs
@@ -5,7 +5,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.MediaEncoding
{
diff --git a/MediaBrowser.Controller/Net/IWebSocketListener.cs b/MediaBrowser.Controller/Net/IWebSocketListener.cs
index 2b4fc7676..29698c1a4 100644
--- a/MediaBrowser.Controller/Net/IWebSocketListener.cs
+++ b/MediaBrowser.Controller/Net/IWebSocketListener.cs
@@ -1,5 +1,4 @@
-using MediaBrowser.Common.Net;
-using System.Threading.Tasks;
+using System.Threading.Tasks;
namespace MediaBrowser.Controller.Net
{
diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs
index 2192ebcac..c057c9707 100644
--- a/MediaBrowser.Controller/Providers/DirectoryService.cs
+++ b/MediaBrowser.Controller/Providers/DirectoryService.cs
@@ -5,7 +5,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.Providers
{
diff --git a/MediaBrowser.Controller/Providers/IDirectoryService.cs b/MediaBrowser.Controller/Providers/IDirectoryService.cs
index 062a10901..09f9ba8c0 100644
--- a/MediaBrowser.Controller/Providers/IDirectoryService.cs
+++ b/MediaBrowser.Controller/Providers/IDirectoryService.cs
@@ -1,7 +1,5 @@
using System.Collections.Generic;
-using System.IO;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.Providers
{
diff --git a/MediaBrowser.Controller/Providers/IHasItemChangeMonitor.cs b/MediaBrowser.Controller/Providers/IHasItemChangeMonitor.cs
index 4c7069dd6..9441c3ecd 100644
--- a/MediaBrowser.Controller/Providers/IHasItemChangeMonitor.cs
+++ b/MediaBrowser.Controller/Providers/IHasItemChangeMonitor.cs
@@ -8,9 +8,8 @@ namespace MediaBrowser.Controller.Providers
/// Determines whether the specified item has changed.
/// </summary>
/// <param name="item">The item.</param>
- /// <param name="status">The status.</param>
/// <param name="directoryService">The directory service.</param>
/// <returns><c>true</c> if the specified item has changed; otherwise, <c>false</c>.</returns>
- bool HasChanged(IHasMetadata item, MetadataStatus status, IDirectoryService directoryService);
+ bool HasChanged(IHasMetadata item, IDirectoryService directoryService);
}
} \ No newline at end of file
diff --git a/MediaBrowser.Controller/Providers/IMetadataProvider.cs b/MediaBrowser.Controller/Providers/IMetadataProvider.cs
index 26f43d820..0f534c328 100644
--- a/MediaBrowser.Controller/Providers/IMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/IMetadataProvider.cs
@@ -1,5 +1,4 @@
using MediaBrowser.Controller.Entities;
-using System.Collections.Generic;
namespace MediaBrowser.Controller.Providers
{
diff --git a/MediaBrowser.Controller/Providers/IProviderRepository.cs b/MediaBrowser.Controller/Providers/IProviderRepository.cs
index 3cd2c3f31..1f77d0ca1 100644
--- a/MediaBrowser.Controller/Providers/IProviderRepository.cs
+++ b/MediaBrowser.Controller/Providers/IProviderRepository.cs
@@ -1,6 +1,5 @@
using MediaBrowser.Controller.Persistence;
using System;
-using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
diff --git a/MediaBrowser.Controller/Providers/ISeriesOrderManager.cs b/MediaBrowser.Controller/Providers/ISeriesOrderManager.cs
index 235d0ada5..970f7a7be 100644
--- a/MediaBrowser.Controller/Providers/ISeriesOrderManager.cs
+++ b/MediaBrowser.Controller/Providers/ISeriesOrderManager.cs
@@ -1,9 +1,5 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using System.Collections.Generic;
using System.Threading.Tasks;
-using MediaBrowser.Common;
namespace MediaBrowser.Controller.Providers
{
diff --git a/MediaBrowser.Controller/Providers/LocalImageInfo.cs b/MediaBrowser.Controller/Providers/LocalImageInfo.cs
index 51916268f..14f292bec 100644
--- a/MediaBrowser.Controller/Providers/LocalImageInfo.cs
+++ b/MediaBrowser.Controller/Providers/LocalImageInfo.cs
@@ -1,6 +1,4 @@
-using System.IO;
using CommonIO;
-using MediaBrowser.Common.IO;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Providers
diff --git a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs
index 6f217eea2..9427b2afd 100644
--- a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs
+++ b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs
@@ -1,6 +1,6 @@
using System.Linq;
using CommonIO;
-using MediaBrowser.Common.IO;
+using MediaBrowser.Model.Providers;
namespace MediaBrowser.Controller.Providers
{
@@ -14,6 +14,7 @@ namespace MediaBrowser.Controller.Providers
public bool IsPostRecursiveRefresh { get; set; }
public MetadataRefreshMode MetadataRefreshMode { get; set; }
+ public RemoteSearchResult SearchResult { get; set; }
public bool ForceSave { get; set; }
@@ -38,6 +39,7 @@ namespace MediaBrowser.Controller.Providers
ImageRefreshMode = copy.ImageRefreshMode;
ReplaceAllImages = copy.ReplaceAllImages;
ReplaceImages = copy.ReplaceImages.ToList();
+ SearchResult = copy.SearchResult;
}
}
}
diff --git a/MediaBrowser.Controller/Providers/TrailerInfo.cs b/MediaBrowser.Controller/Providers/TrailerInfo.cs
index 65ddc2d1e..fe26ec43e 100644
--- a/MediaBrowser.Controller/Providers/TrailerInfo.cs
+++ b/MediaBrowser.Controller/Providers/TrailerInfo.cs
@@ -1,5 +1,3 @@
-using MediaBrowser.Model.Entities;
-
namespace MediaBrowser.Controller.Providers
{
public class TrailerInfo : ItemLookupInfo
diff --git a/MediaBrowser.Controller/RelatedMedia/IRelatedMediaProvider.cs b/MediaBrowser.Controller/RelatedMedia/IRelatedMediaProvider.cs
index 1cf5742b2..bb2a0cd89 100644
--- a/MediaBrowser.Controller/RelatedMedia/IRelatedMediaProvider.cs
+++ b/MediaBrowser.Controller/RelatedMedia/IRelatedMediaProvider.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Controller.RelatedMedia
+namespace MediaBrowser.Controller.RelatedMedia
{
public interface IRelatedMediaProvider
{
diff --git a/MediaBrowser.Controller/Resolvers/IItemResolver.cs b/MediaBrowser.Controller/Resolvers/IItemResolver.cs
index f747c055e..bdff5fffa 100644
--- a/MediaBrowser.Controller/Resolvers/IItemResolver.cs
+++ b/MediaBrowser.Controller/Resolvers/IItemResolver.cs
@@ -2,9 +2,7 @@
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using System.Collections.Generic;
-using System.IO;
using CommonIO;
-using MediaBrowser.Common.IO;
namespace MediaBrowser.Controller.Resolvers
{
diff --git a/MediaBrowser.Controller/Sorting/SortHelper.cs b/MediaBrowser.Controller/Sorting/SortHelper.cs
index 95a3c26c4..3456b9b04 100644
--- a/MediaBrowser.Controller/Sorting/SortHelper.cs
+++ b/MediaBrowser.Controller/Sorting/SortHelper.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Controller.Sorting
+namespace MediaBrowser.Controller.Sorting
{
public static class SortHelper
{
diff --git a/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs b/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs
index e781c048b..a2371426a 100644
--- a/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs
+++ b/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs
@@ -19,6 +19,7 @@ namespace MediaBrowser.Controller.Subtitles
public int? ParentIndexNumber { get; set; }
public int? ProductionYear { get; set; }
public long? RuntimeTicks { get; set; }
+ public bool IsPerfectMatch { get; set; }
public Dictionary<string, string> ProviderIds { get; set; }
public bool SearchAllProviders { get; set; }
diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs
index fd373050f..8eb934eaa 100644
--- a/MediaBrowser.Controller/Sync/ISyncManager.cs
+++ b/MediaBrowser.Controller/Sync/ISyncManager.cs
@@ -1,5 +1,4 @@
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Sync;