瀏覽代碼

update channel mapping

Luke Pulverenti 9 年之前
父節點
當前提交
3ba9d3c12f

+ 5 - 3
MediaBrowser.Api/LiveTv/LiveTvService.cs

@@ -578,7 +578,9 @@ namespace MediaBrowser.Api.LiveTv
         {
             var config = GetConfiguration();
 
-            var listingProvider = config.ListingProviders.First(i => string.Equals(request.ProviderId, i.Id, StringComparison.OrdinalIgnoreCase));
+            var listingsProviderInfo = config.ListingProviders.First(i => string.Equals(request.ProviderId, i.Id, StringComparison.OrdinalIgnoreCase));
+
+            var listingsProviderName = _liveTvManager.ListingProviders.First(i => string.Equals(i.Type, listingsProviderInfo.Type, StringComparison.OrdinalIgnoreCase)).Name;
 
             var tunerChannels = await _liveTvManager.GetChannelsForListingsProvider(request.ProviderId, CancellationToken.None)
                         .ConfigureAwait(false);
@@ -586,7 +588,7 @@ namespace MediaBrowser.Api.LiveTv
             var providerChannels = await _liveTvManager.GetChannelsFromListingsProviderData(request.ProviderId, CancellationToken.None)
                      .ConfigureAwait(false);
 
-            var mappings = listingProvider.ChannelMappings.ToList();
+            var mappings = listingsProviderInfo.ChannelMappings.ToList();
 
             var result = new ChannelMappingOptions
             {
@@ -601,7 +603,7 @@ namespace MediaBrowser.Api.LiveTv
 
                 Mappings = mappings,
 
-                ProviderName = "Schedules Direct"
+                ProviderName = listingsProviderName
             };
 
             return ToOptimizedResult(result);

+ 2 - 0
MediaBrowser.Controller/LiveTv/ILiveTvManager.cs

@@ -390,6 +390,8 @@ namespace MediaBrowser.Controller.LiveTv
         Task<List<ChannelInfo>> GetChannelsForListingsProvider(string id, CancellationToken cancellationToken);
         Task<List<ChannelInfo>> GetChannelsFromListingsProviderData(string id, CancellationToken cancellationToken);
 
+        List<IListingsProvider> ListingProviders { get;}
+
         event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled;
         event EventHandler<GenericEventArgs<TimerEventInfo>> TimerCancelled;
         event EventHandler<GenericEventArgs<TimerEventInfo>> TimerCreated;

+ 4 - 0
MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs

@@ -73,6 +73,10 @@ namespace MediaBrowser.Server.Implementations.Library
                 {
                     return false;
                 }
+                if (string.Equals(stream.Codec, "ssa", StringComparison.OrdinalIgnoreCase))
+                {
+                    return false;
+                }
                 return true;
             }
 

+ 11 - 3
MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs

@@ -879,6 +879,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
                 throw new Exception("ListingsId required");
             }
 
+            await AddMetadata(info, new List<ChannelInfo>(), cancellationToken).ConfigureAwait(false);
+
             var token = await GetToken(info, cancellationToken);
 
             if (string.IsNullOrWhiteSpace(token))
@@ -886,8 +888,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
                 throw new Exception("token required");
             }
 
-            ClearPairCache(listingsId);
-
             var httpOptions = new HttpRequestOptions()
             {
                 Url = ApiUrl + "/lineups/" + listingsId,
@@ -921,10 +921,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
                     }
                     channelNumber = channelNumber.TrimStart('0');
 
+                    var name = channelNumber;
+                    var station = GetStation(listingsId, channelNumber, null);
+
+                    if (station != null)
+                    {
+                        name = station.name;
+                    }
+
                     list.Add(new ChannelInfo
                     {
                         Number = channelNumber,
-                        Name = map.channel
+                        Name = name
                     });
                 }
             }

+ 1 - 1
MediaBrowser.Server.Implementations/Persistence/IDbConnector.cs

@@ -5,6 +5,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
 {
     public interface IDbConnector
     {
-        Task<IDbConnection> Connect(string dbPath);
+        Task<IDbConnection> Connect(string dbPath, int? cacheSize = null);
     }
 }

+ 2 - 2
MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs

@@ -23,7 +23,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
         /// <param name="logger">The logger.</param>
         /// <returns>Task{IDbConnection}.</returns>
         /// <exception cref="System.ArgumentNullException">dbPath</exception>
-        public static async Task<IDbConnection> ConnectToDb(string dbPath, ILogger logger)
+        public static async Task<IDbConnection> ConnectToDb(string dbPath, int? cacheSize, ILogger logger)
         {
             if (string.IsNullOrEmpty(dbPath))
             {
@@ -35,7 +35,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
             var connectionstr = new SQLiteConnectionStringBuilder
             {
                 PageSize = 4096,
-                CacheSize = 2000,
+                CacheSize = cacheSize ?? 2000,
                 SyncMode = SynchronizationModes.Normal,
                 DataSource = dbPath,
                 JournalMode = SQLiteJournalModeEnum.Wal

+ 1 - 1
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -127,7 +127,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
         {
             var dbFile = Path.Combine(_config.ApplicationPaths.DataPath, "library.db");
 
-            _connection = await dbConnector.Connect(dbFile).ConfigureAwait(false);
+            _connection = await dbConnector.Connect(dbFile, 6000).ConfigureAwait(false);
 
             var createMediaStreamsTableCommand
                = "create table if not exists mediastreams (ItemId GUID, StreamIndex INT, StreamType TEXT, Codec TEXT, Language TEXT, ChannelLayout TEXT, Profile TEXT, AspectRatio TEXT, Path TEXT, IsInterlaced BIT, BitRate INT NULL, Channels INT NULL, SampleRate INT NULL, IsDefault BIT, IsForced BIT, IsExternal BIT, Height INT NULL, Width INT NULL, AverageFrameRate FLOAT NULL, RealFrameRate FLOAT NULL, Level FLOAT NULL, PixelFormat TEXT, BitDepth INT NULL, IsAnamorphic BIT NULL, RefFrames INT NULL, CodecTag TEXT NULL, Comment TEXT NULL, NalLengthSize TEXT NULL, IsAvc BIT NULL, Title TEXT NULL, TimeBase TEXT NULL, CodecTimeBase TEXT NULL, PRIMARY KEY (ItemId, StreamIndex))";

+ 2 - 2
MediaBrowser.Server.Mono/Native/DbConnector.cs

@@ -16,9 +16,9 @@ namespace MediaBrowser.Server.Mono.Native
             _logger = logger;
         }
 
-        public Task<IDbConnection> Connect(string dbPath)
+        public Task<IDbConnection> Connect(string dbPath, int? cacheSize = null)
         {
-            return SqliteExtensions.ConnectToDb(dbPath, _logger);
+            return SqliteExtensions.ConnectToDb(dbPath, cacheSize, _logger);
         }
     }
 }

+ 2 - 2
MediaBrowser.ServerApplication/Native/DbConnector.cs

@@ -16,11 +16,11 @@ namespace MediaBrowser.ServerApplication.Native
             _logger = logger;
         }
 
-        public async Task<IDbConnection> Connect(string dbPath)
+        public async Task<IDbConnection> Connect(string dbPath, int? cacheSize = null)
         {
             try
             {
-                return await SqliteExtensions.ConnectToDb(dbPath, _logger).ConfigureAwait(false);
+                return await SqliteExtensions.ConnectToDb(dbPath, cacheSize, _logger).ConfigureAwait(false);
             }
             catch (Exception ex)
             {