diff options
15 files changed, 40 insertions, 194 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs index f3dcf57e0..fe21b9ada 100644 --- a/MediaBrowser.Api/LiveTv/LiveTvService.cs +++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs @@ -171,6 +171,9 @@ namespace MediaBrowser.Api.LiveTv [ApiMember(Name = "MinStartDate", Description = "Optional. The minimum premiere date. Format = ISO", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET,POST")] public string MinStartDate { get; set; } + [ApiMember(Name = "HasAired", Description = "Optional. Filter by programs that have completed airing, or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] + public bool? HasAired { get; set; } + [ApiMember(Name = "MaxStartDate", Description = "Optional. The maximum premiere date. Format = ISO", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET,POST")] public string MaxStartDate { get; set; } @@ -369,7 +372,8 @@ namespace MediaBrowser.Api.LiveTv var query = new ProgramQuery { ChannelIdList = (request.ChannelIds ?? string.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(), - UserId = request.UserId + UserId = request.UserId, + HasAired = request.HasAired }; if (!string.IsNullOrEmpty(request.MinStartDate)) diff --git a/MediaBrowser.Model/LiveTv/ProgramQuery.cs b/MediaBrowser.Model/LiveTv/ProgramQuery.cs index 36c06d4c0..2d15a4c4b 100644 --- a/MediaBrowser.Model/LiveTv/ProgramQuery.cs +++ b/MediaBrowser.Model/LiveTv/ProgramQuery.cs @@ -26,7 +26,9 @@ namespace MediaBrowser.Model.LiveTv public DateTime? MinEndDate { get; set; } public DateTime? MaxEndDate { get; set; } - + + public bool? HasAired { get; set; } + public ProgramQuery() { ChannelIdList = new string[] { }; diff --git a/MediaBrowser.Model/MediaInfo/LiveMediaInfoResult.cs b/MediaBrowser.Model/MediaInfo/LiveMediaInfoResult.cs index afd5c890f..4a206ea20 100644 --- a/MediaBrowser.Model/MediaInfo/LiveMediaInfoResult.cs +++ b/MediaBrowser.Model/MediaInfo/LiveMediaInfoResult.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Dlna; +using MediaBrowser.Model.Dto; using System.Collections.Generic; namespace MediaBrowser.Model.MediaInfo @@ -17,6 +18,12 @@ namespace MediaBrowser.Model.MediaInfo /// <value>The live stream identifier.</value> public string LiveStreamId { get; set; } + /// <summary> + /// Gets or sets the error code. + /// </summary> + /// <value>The error code.</value> + public PlaybackErrorCode? ErrorCode { get; set; } + public LiveMediaInfoResult() { MediaSources = new List<MediaSourceInfo>(); diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index be3926f4c..337bba6a2 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -659,6 +659,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv programs = programs.Where(i => i.StartDate <= val); } + if (query.HasAired.HasValue) + { + var val = query.HasAired.Value; + programs = programs.Where(i => i.HasAired == val); + } + if (query.ChannelIdList.Length > 0) { var guids = query.ChannelIdList.Select(i => new Guid(i)).ToList(); diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index 035cdf21c..484578e31 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -36,8 +36,8 @@ "MessageKeyUpdated": "Thank you. Your supporter key has been updated.", "MessageKeyRemoved": "Thank you. Your supporter key has been removed.", "ErrorLaunchingChromecast": "There was an error launching chromecast. Please ensure your device is connected to your wireless network.", - "ValueTimeLimitSingleHour": "Time limit: 1 hour", - "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", "HeaderSearch": "Search", "ValueDateCreated": "Date created: {0}", "LabelArtist": "Artist", @@ -97,6 +97,10 @@ "LabelVersionInstalled": "{0} installed", "LabelNumberReviews": "{0} Reviews", "LabelFree": "Free", + "HeaderPlaybackError": "Playback Error", + "MessagePlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "MessagePlaybackErrorNoCompatibleStream": "No compatible streams are currently available. Please try again later.", + "MessagePlaybackErrorRateLimitExceeded": "Your playback rate limit has been exceeded. Please contact your system administrator for details.", "HeaderSelectAudio": "Select Audio", "HeaderSelectSubtitles": "Select Subtitles", "ButtonMarkForRemoval": "Remove from device", diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index fe8185447..4e2d66894 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -304,8 +304,6 @@ <Compile Include="Sorting\StudioComparer.cs" /> <Compile Include="Sorting\VideoBitRateComparer.cs" /> <Compile Include="Sync\AppSyncProvider.cs" /> - <Compile Include="Sync\FolderSync\FolderSyncDataProvider.cs" /> - <Compile Include="Sync\FolderSync\FolderSyncProvider.cs" /> <Compile Include="Sync\CloudSyncProfile.cs" /> <Compile Include="Sync\IHasSyncProfile.cs" /> <Compile Include="Sync\MediaSync.cs" /> diff --git a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs b/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs index f93153c9c..4e1330144 100644 --- a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs +++ b/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs @@ -13,13 +13,15 @@ using System.Threading.Tasks; namespace MediaBrowser.Server.Implementations.Photos { - public class MusicDynamicImageProvider : BaseDynamicImageProvider<UserView>, ICustomMetadataProvider<UserView> + public class DynamicImageProvider : BaseDynamicImageProvider<UserView>, ICustomMetadataProvider<UserView> { private readonly IUserManager _userManager; private readonly ILibraryManager _libraryManager; - public MusicDynamicImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths) : base(fileSystem, providerManager, applicationPaths) + public DynamicImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IUserManager userManager, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths) { + _userManager = userManager; + _libraryManager = libraryManager; } protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item) diff --git a/MediaBrowser.Server.Implementations/Sync/FolderSync/FolderSyncDataProvider.cs b/MediaBrowser.Server.Implementations/Sync/FolderSync/FolderSyncDataProvider.cs deleted file mode 100644 index b9008d87e..000000000 --- a/MediaBrowser.Server.Implementations/Sync/FolderSync/FolderSyncDataProvider.cs +++ /dev/null @@ -1,31 +0,0 @@ -using MediaBrowser.Controller.Sync; -using MediaBrowser.Model.Sync; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.Sync.FolderSync -{ - public class FolderSyncDataProvider : ISyncDataProvider - { - public Task<List<string>> GetServerItemIds(SyncTarget target, string serverId) - { - throw new NotImplementedException(); - } - - public Task AddOrUpdate(SyncTarget target, LocalItem item) - { - throw new NotImplementedException(); - } - - public Task Delete(SyncTarget target, string id) - { - throw new NotImplementedException(); - } - - public Task<LocalItem> Get(SyncTarget target, string id) - { - throw new NotImplementedException(); - } - } -} diff --git a/MediaBrowser.Server.Implementations/Sync/FolderSync/FolderSyncProvider.cs b/MediaBrowser.Server.Implementations/Sync/FolderSync/FolderSyncProvider.cs deleted file mode 100644 index 3183816c8..000000000 --- a/MediaBrowser.Server.Implementations/Sync/FolderSync/FolderSyncProvider.cs +++ /dev/null @@ -1,143 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Sync; -using MediaBrowser.Model.Sync; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.Sync.FolderSync -{ - public class FolderSyncProvider : IServerSyncProvider - { - private readonly IApplicationPaths _appPaths; - private readonly IUserManager _userManager; - - public FolderSyncProvider(IApplicationPaths appPaths, IUserManager userManager) - { - _appPaths = appPaths; - _userManager = userManager; - } - - public Task SendFile(string inputFile, string path, SyncTarget target, IProgress<double> progress, CancellationToken cancellationToken) - { - return Task.Run(() => File.Copy(inputFile, path, true), cancellationToken); - } - - public Task DeleteFile(string path, SyncTarget target, CancellationToken cancellationToken) - { - return Task.Run(() => File.Delete(path), cancellationToken); - } - - public Task<Stream> GetFile(string path, SyncTarget target, IProgress<double> progress, CancellationToken cancellationToken) - { - return Task.FromResult((Stream)File.OpenRead(path)); - } - - public string GetFullPath(IEnumerable<string> paths, SyncTarget target) - { - var account = GetSyncAccounts() - .FirstOrDefault(i => string.Equals(i.Id, target.Id, StringComparison.OrdinalIgnoreCase)); - - if (account == null) - { - throw new ArgumentException("Invalid SyncTarget supplied."); - } - - var list = paths.ToList(); - list.Insert(0, account.Path); - - return Path.Combine(list.ToArray()); - } - - public string GetParentDirectoryPath(string path, SyncTarget target) - { - return Path.GetDirectoryName(path); - } - - public Task<List<DeviceFileInfo>> GetFileSystemEntries(string path, SyncTarget target) - { - List<FileInfo> files; - - try - { - files = new DirectoryInfo(path).EnumerateFiles("*", SearchOption.TopDirectoryOnly).ToList(); - } - catch (DirectoryNotFoundException) - { - files = new List<FileInfo>(); - } - - return Task.FromResult(files.Select(i => new DeviceFileInfo - { - Name = i.Name, - Path = i.FullName - - }).ToList()); - } - - public ISyncDataProvider GetDataProvider() - { - // If single instances are needed, manage them here - return new FolderSyncDataProvider(); - } - - public string Name - { - get { return "Folder Sync"; } - } - - public IEnumerable<SyncTarget> GetSyncTargets(string userId) - { - return GetSyncAccounts() - .Where(i => i.UserIds.Contains(userId, StringComparer.OrdinalIgnoreCase)) - .Select(GetSyncTarget); - } - - public IEnumerable<SyncTarget> GetAllSyncTargets() - { - return GetSyncAccounts().Select(GetSyncTarget); - } - - private SyncTarget GetSyncTarget(SyncAccount account) - { - return new SyncTarget - { - Id = account.Id, - Name = account.Name - }; - } - - private IEnumerable<SyncAccount> GetSyncAccounts() - { - return new List<SyncAccount>(); - // Dummy this up - return _userManager - .Users - .Select(i => new SyncAccount - { - Id = i.Id.ToString("N"), - UserIds = new List<string> { i.Id.ToString("N") }, - Path = Path.Combine(_appPaths.DataPath, "foldersync", i.Id.ToString("N")), - Name = i.Name + "'s Folder Sync" - }); - } - - // An internal class to manage all configured Folder Sync accounts for differnet users - class SyncAccount - { - public string Id { get; set; } - public string Name { get; set; } - public string Path { get; set; } - public List<string> UserIds { get; set; } - - public SyncAccount() - { - UserIds = new List<string>(); - } - } - } -} diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index 598ec1fd7..e77af1c6b 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -1,5 +1,4 @@ -using ImageMagickSharp; -using MediaBrowser.Common.Implementations.Logging; +using MediaBrowser.Common.Implementations.Logging; using MediaBrowser.Model.Logging; using MediaBrowser.Server.Implementations; using MediaBrowser.Server.Startup.Common; diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index fb889e4f2..53e34ceae 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -455,9 +455,7 @@ <Name>MediaBrowser.XbmcMetadata</Name> </ProjectReference> </ItemGroup> - <ItemGroup> - <Folder Include="ImageMagickCoders\x86\" /> - </ItemGroup> + <ItemGroup /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <PropertyGroup> <PostBuildEvent> diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec index f83ddcbf1..94d843174 100644 --- a/Nuget/MediaBrowser.Common.Internal.nuspec +++ b/Nuget/MediaBrowser.Common.Internal.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Common.Internal</id> - <version>3.0.580</version> + <version>3.0.581</version> <title>MediaBrowser.Common.Internal</title> <authors>Luke</authors> <owners>ebr,Luke,scottisafool</owners> @@ -12,7 +12,7 @@ <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description> <copyright>Copyright © Media Browser 2013</copyright> <dependencies> - <dependency id="MediaBrowser.Common" version="3.0.580" /> + <dependency id="MediaBrowser.Common" version="3.0.581" /> <dependency id="NLog" version="3.2.0.0" /> <dependency id="SimpleInjector" version="2.7.0" /> </dependencies> diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec index 675b9aafc..578cda06a 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Common</id> - <version>3.0.580</version> + <version>3.0.581</version> <title>MediaBrowser.Common</title> <authors>Media Browser Team</authors> <owners>ebr,Luke,scottisafool</owners> diff --git a/Nuget/MediaBrowser.Model.Signed.nuspec b/Nuget/MediaBrowser.Model.Signed.nuspec index 892b64be9..ae5e261f9 100644 --- a/Nuget/MediaBrowser.Model.Signed.nuspec +++ b/Nuget/MediaBrowser.Model.Signed.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Model.Signed</id> - <version>3.0.580</version> + <version>3.0.581</version> <title>MediaBrowser.Model - Signed Edition</title> <authors>Media Browser Team</authors> <owners>ebr,Luke,scottisafool</owners> diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index 537313ec8..d3de0bb79 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>MediaBrowser.Server.Core</id> - <version>3.0.580</version> + <version>3.0.581</version> <title>Media Browser.Server.Core</title> <authors>Media Browser Team</authors> <owners>ebr,Luke,scottisafool</owners> @@ -12,7 +12,7 @@ <description>Contains core components required to build plugins for Media Browser Server.</description> <copyright>Copyright © Media Browser 2013</copyright> <dependencies> - <dependency id="MediaBrowser.Common" version="3.0.580" /> + <dependency id="MediaBrowser.Common" version="3.0.581" /> </dependencies> </metadata> <files> |
