2
0
Luke Pulverenti 11 жил өмнө
parent
commit
3733ebd21e

+ 19 - 7
MediaBrowser.Common.Implementations/Updates/InstallationManager.cs

@@ -156,17 +156,13 @@ namespace MediaBrowser.Common.Implementations.Updates
         }
 
         private Tuple<List<PackageInfo>, DateTime> _lastPackageListResult;
-        
+
         /// <summary>
         /// Gets all available packages.
         /// </summary>
         /// <param name="cancellationToken">The cancellation token.</param>
-        /// <param name="packageType">Type of the package.</param>
-        /// <param name="applicationVersion">The application version.</param>
         /// <returns>Task{List{PackageInfo}}.</returns>
-        public async Task<IEnumerable<PackageInfo>> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken,
-            PackageType? packageType = null,
-            Version applicationVersion = null)
+        public async Task<IEnumerable<PackageInfo>> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken)
         {
             if (_lastPackageListResult != null)
             {
@@ -187,10 +183,26 @@ namespace MediaBrowser.Common.Implementations.Updates
 
                 var packages = _jsonSerializer.DeserializeFromStream<List<PackageInfo>>(json).ToList();
 
+                packages = FilterPackages(packages).ToList();
+
                 _lastPackageListResult = new Tuple<List<PackageInfo>, DateTime>(packages, DateTime.UtcNow);
 
-                return FilterPackages(packages, packageType, applicationVersion);
+                return _lastPackageListResult.Item1;
+            }
+        }
+
+        protected IEnumerable<PackageInfo> FilterPackages(List<PackageInfo> packages)
+        {
+            foreach (var package in packages)
+            {
+                package.versions = package.versions.Where(v => !string.IsNullOrWhiteSpace(v.sourceUrl))
+                    .OrderByDescending(v => v.version).ToList();
             }
+
+            // Remove packages with no versions
+            packages = packages.Where(p => p.versions.Any()).ToList();
+
+            return packages;
         }
 
         protected IEnumerable<PackageInfo> FilterPackages(List<PackageInfo> packages, PackageType? packageType, Version applicationVersion)

+ 1 - 5
MediaBrowser.Common/Updates/IInstallationManager.cs

@@ -56,12 +56,8 @@ namespace MediaBrowser.Common.Updates
         /// Gets all available packages from a static resource.
         /// </summary>
         /// <param name="cancellationToken">The cancellation token.</param>
-        /// <param name="packageType">Type of the package.</param>
-        /// <param name="applicationVersion">The application version.</param>
         /// <returns>Task{List{PackageInfo}}.</returns>
-        Task<IEnumerable<PackageInfo>> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken,
-            PackageType? packageType = null,
-            Version applicationVersion = null);
+        Task<IEnumerable<PackageInfo>> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken);
         
         /// <summary>
         /// Gets the package.

+ 1 - 2
MediaBrowser.Server.Implementations/HttpServer/NativeWebSocket.cs

@@ -25,7 +25,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
         /// <value>The web socket.</value>
         private System.Net.WebSockets.WebSocket WebSocket { get; set; }
 
-        private CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();
+        private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();
 
         /// <summary>
         /// Initializes a new instance of the <see cref="NativeWebSocket" /> class.
@@ -168,7 +168,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer
             if (dispose)
             {
                 _cancellationTokenSource.Cancel();
-                _cancellationTokenSource.Dispose();
 
                 WebSocket.Dispose();
             }

+ 2 - 2
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.210</version>
+        <version>3.0.211</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.210" />
+            <dependency id="MediaBrowser.Common" version="3.0.211" />
             <dependency id="NLog" version="2.0.1.2" />
             <dependency id="ServiceStack.Text" version="3.9.58" />
             <dependency id="SimpleInjector" version="2.3.2" />

+ 1 - 1
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.210</version>
+        <version>3.0.211</version>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
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.210</version>
+        <version>3.0.211</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.210" />
+            <dependency id="MediaBrowser.Common" version="3.0.211" />
         </dependencies>
     </metadata>
     <files>