Browse Source

Merge pull request #1841 from MediaBrowser/dev

Dev
Luke 9 năm trước cách đây
mục cha
commit
daae42fc35

+ 1 - 0
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -201,6 +201,7 @@ namespace MediaBrowser.Model.Configuration
         public bool EnableFolderView { get; set; }
         public bool EnableGroupingIntoCollections { get; set; }
         public bool DisplaySpecialsWithinSeasons { get; set; }
+        public bool DisplayCollectionsView { get; set; }
         public string[] LocalNetworkAddresses { get; set; }
 
         /// <summary>

+ 1 - 1
MediaBrowser.Server.Implementations/Collections/ManualCollectionsFolder.cs

@@ -20,7 +20,7 @@ namespace MediaBrowser.Server.Implementations.Collections
 
         public bool IsHiddenFromUser(User user)
         {
-            return !user.Configuration.DisplayCollectionsView;
+            return !ConfigurationManager.Configuration.DisplayCollectionsView;
         }
 
         public override string CollectionType

+ 12 - 3
MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs

@@ -66,7 +66,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
             return cacheFile;
         }
 
-        // TODO: Should this method be async?
         public async Task<IEnumerable<ProgramInfo>> GetProgramsAsync(ListingsProviderInfo info, string channelNumber, string channelName, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken)
         {
             var path = await GetXml(info.Path, cancellationToken).ConfigureAwait(false);
@@ -89,7 +88,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
                 SeasonNumber = p.Episode == null ? null : p.Episode.Series,
                 IsSeries = p.IsSeries,
                 IsRepeat = p.IsRepeat,
-                // IsPremiere = !p.PreviouslyShown.HasValue,
+                IsPremiere = p.Premiere != null,
                 IsKids = p.Categories.Any(c => info.KidsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)),
                 IsMovie = p.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)),
                 IsNews = p.Categories.Any(c => info.NewsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)),
@@ -147,7 +146,17 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
 
         public async Task<List<ChannelInfo>> GetChannels(ListingsProviderInfo info, CancellationToken cancellationToken)
         {
-            return new List<ChannelInfo>();
+            // In theory this should never be called because there is always only one lineup
+            var reader = new XmlTvReader(info.Path, GetLanguage(), null);
+            var results = reader.GetChannels();
+
+            // Should this method be async?
+            return results.Select(c => new ChannelInfo()
+            {
+                Id = c.Id,
+                Name = c.DisplayName,
+                ImageUrl = c.Icon != null && !String.IsNullOrEmpty(c.Icon.Source) ? c.Icon.Source : null
+            }).ToList();
         }
     }
 }

+ 2 - 1
MediaBrowser.Server.Startup.Common/ApplicationHost.cs

@@ -382,7 +382,8 @@ namespace MediaBrowser.Server.Startup.Common
                 new MovieDbEpisodeProviderMigration(ServerConfigurationManager),
                 new DbMigration(ServerConfigurationManager, TaskManager),
                 new FolderViewSettingMigration(ServerConfigurationManager, UserManager),
-                new CollectionGroupingMigration(ServerConfigurationManager, UserManager)
+                new CollectionGroupingMigration(ServerConfigurationManager, UserManager),
+                new CollectionsViewMigration(ServerConfigurationManager, UserManager)
             };
 
             foreach (var task in migrations)

+ 1 - 0
MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj

@@ -72,6 +72,7 @@
     <Compile Include="INativeApp.cs" />
     <Compile Include="MbLinkShortcutHandler.cs" />
     <Compile Include="Migrations\CollectionGroupingMigration.cs" />
+    <Compile Include="Migrations\CollectionsViewMigration.cs" />
     <Compile Include="Migrations\FolderViewSettingMigration.cs" />
     <Compile Include="Migrations\IVersionMigration.cs" />
     <Compile Include="Migrations\DbMigration.cs" />

+ 44 - 0
MediaBrowser.Server.Startup.Common/Migrations/CollectionsViewMigration.cs

@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Library;
+
+namespace MediaBrowser.Server.Startup.Common.Migrations
+{
+    public class CollectionsViewMigration : IVersionMigration
+    {
+        private readonly IServerConfigurationManager _config;
+        private readonly IUserManager _userManager;
+
+        public CollectionsViewMigration(IServerConfigurationManager config, IUserManager userManager)
+        {
+            _config = config;
+            _userManager = userManager;
+        }
+
+        public void Run()
+        {
+            var migrationKey = this.GetType().Name;
+            var migrationKeyList = _config.Configuration.Migrations.ToList();
+
+            if (!migrationKeyList.Contains(migrationKey))
+            {
+                if (_config.Configuration.IsStartupWizardCompleted)
+                {
+                    if (_userManager.Users.Any(i => i.Configuration.DisplayCollectionsView))
+                    {
+                        _config.Configuration.DisplayCollectionsView = true;
+                    }
+                }
+
+                migrationKeyList.Add(migrationKey);
+                _config.Configuration.Migrations = migrationKeyList.ToArray();
+                _config.SaveConfiguration();
+            }
+
+        }
+    }
+}