aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-01-03 14:01:05 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-01-03 14:01:05 -0500
commit316b7da1a357604d4d935734b91c918d821eb3f2 (patch)
treedb69103b947978dca573bbe970cae2659405e8b0
parent3560e61596fcb415c7b8f123e33b96a84214c62d (diff)
update github updater
-rw-r--r--MediaBrowser.Common.Implementations/Updates/GithubUpdater.cs11
-rw-r--r--MediaBrowser.Server.Mono/Program.cs2
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs53
-rw-r--r--MediaBrowser.ServerApplication/MainStartup.cs2
4 files changed, 34 insertions, 34 deletions
diff --git a/MediaBrowser.Common.Implementations/Updates/GithubUpdater.cs b/MediaBrowser.Common.Implementations/Updates/GithubUpdater.cs
index b5ccebd2a..a6dcc53d0 100644
--- a/MediaBrowser.Common.Implementations/Updates/GithubUpdater.cs
+++ b/MediaBrowser.Common.Implementations/Updates/GithubUpdater.cs
@@ -25,7 +25,7 @@ namespace MediaBrowser.Common.Implementations.Updates
_cacheLength = cacheLength;
}
- public async Task<CheckForUpdateResult> CheckForUpdateResult(string organzation, string repository, Version minVersion, bool includePrerelease, string assetFilename, string packageName, string targetFilename, CancellationToken cancellationToken)
+ public async Task<CheckForUpdateResult> CheckForUpdateResult(string organzation, string repository, Version minVersion, bool includePrerelease, string[] excludeSuffixes, string assetFilename, string packageName, string targetFilename, CancellationToken cancellationToken)
{
var url = string.Format("https://api.github.com/repos/{0}/{1}/releases", organzation, repository);
@@ -55,7 +55,7 @@ namespace MediaBrowser.Common.Implementations.Updates
{
var obj = _jsonSerializer.DeserializeFromStream<RootObject[]>(stream);
- var availableUpdate = CheckForUpdateResult(obj, minVersion, includePrerelease, assetFilename, packageName, targetFilename);
+ var availableUpdate = CheckForUpdateResult(obj, minVersion, includePrerelease, excludeSuffixes, assetFilename, packageName, targetFilename);
return availableUpdate ?? new CheckForUpdateResult
{
@@ -64,13 +64,18 @@ namespace MediaBrowser.Common.Implementations.Updates
}
}
- private CheckForUpdateResult CheckForUpdateResult(RootObject[] obj, Version minVersion, bool includePrerelease, string assetFilename, string packageName, string targetFilename)
+ private CheckForUpdateResult CheckForUpdateResult(RootObject[] obj, Version minVersion, bool includePrerelease, string[] excludeSuffixes, string assetFilename, string packageName, string targetFilename)
{
if (!includePrerelease)
{
obj = obj.Where(i => !i.prerelease).ToArray();
}
+ if (excludeSuffixes.Length > 0)
+ {
+ obj = obj.Where(i => !excludeSuffixes.Any(e => i.name.EndsWith(e, StringComparison.OrdinalIgnoreCase))).ToArray();
+ }
+
// TODO:
// Filter using name and check for suffixes such as -beta, -dev?
diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs
index 69c8201af..bccf6487a 100644
--- a/MediaBrowser.Server.Mono/Program.cs
+++ b/MediaBrowser.Server.Mono/Program.cs
@@ -82,7 +82,7 @@ namespace MediaBrowser.Server.Mono
var nativeApp = new NativeApp(options);
- _appHost = new ApplicationHost(appPaths, logManager, options, fileSystem, "MBServer.Mono", nativeApp);
+ _appHost = new ApplicationHost(appPaths, logManager, options, fileSystem, "emby.mono.zip", nativeApp);
if (options.ContainsOption("-v"))
{
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index 3690c8f67..ea40ffc18 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -207,7 +207,7 @@ namespace MediaBrowser.Server.Startup.Common
private IPlaylistManager PlaylistManager { get; set; }
private readonly StartupOptions _startupOptions;
- private readonly string _remotePackageName;
+ private readonly string _releaseAssetFilename;
internal INativeApp NativeApp { get; set; }
private Timer _ipAddressCacheTimer;
@@ -219,18 +219,18 @@ namespace MediaBrowser.Server.Startup.Common
/// <param name="logManager">The log manager.</param>
/// <param name="options">The options.</param>
/// <param name="fileSystem">The file system.</param>
- /// <param name="remotePackageName">Name of the remote package.</param>
+ /// <param name="releaseAssetFilename">The release asset filename.</param>
/// <param name="nativeApp">The native application.</param>
public ApplicationHost(ServerApplicationPaths applicationPaths,
ILogManager logManager,
StartupOptions options,
IFileSystem fileSystem,
- string remotePackageName,
+ string releaseAssetFilename,
INativeApp nativeApp)
: base(applicationPaths, logManager, fileSystem)
{
_startupOptions = options;
- _remotePackageName = remotePackageName;
+ _releaseAssetFilename = releaseAssetFilename;
NativeApp = nativeApp;
SetBaseExceptionMessage();
@@ -1309,36 +1309,31 @@ namespace MediaBrowser.Server.Startup.Common
/// <returns>Task{CheckForUpdateResult}.</returns>
public override async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress)
{
- if (ConfigurationManager.CommonConfiguration.SystemUpdateLevel != PackageVersionClass.Dev)
- {
- var includePreRelease = ConfigurationManager.CommonConfiguration.SystemUpdateLevel != PackageVersionClass.Release;
-
- var cacheLength = TimeSpan.FromHours(1);
+ var includePreRelease = false;
+ var cacheLength = TimeSpan.FromHours(12);
+ var excludeSuffixes = new List<string>();
- return await new GithubUpdater(HttpClient, JsonSerializer, cacheLength)
- .CheckForUpdateResult("MediaBrowser", "Emby", ApplicationVersion, includePreRelease, "emby.windows.zip", "MBServer", "Mbserver.zip", cancellationToken).ConfigureAwait(false);
+ if (ConfigurationManager.CommonConfiguration.SystemUpdateLevel == PackageVersionClass.Release)
+ {
+ // Shouldn't actually be needed due to the prerelease filter
+ excludeSuffixes.Add("-beta");
+ excludeSuffixes.Add("-dev");
}
-
- var availablePackages = await InstallationManager.GetAvailablePackagesWithoutRegistrationInfo(cancellationToken).ConfigureAwait(false);
-
- var version = InstallationManager.GetLatestCompatibleVersion(availablePackages, _remotePackageName, null, ApplicationVersion, ConfigurationManager.CommonConfiguration.SystemUpdateLevel);
-
- var versionObject = version == null || string.IsNullOrWhiteSpace(version.versionStr) ? null : new Version(version.versionStr);
-
- var isUpdateAvailable = versionObject != null && versionObject > ApplicationVersion;
-
- var result = versionObject != null ?
- new CheckForUpdateResult { AvailableVersion = versionObject.ToString(), IsUpdateAvailable = isUpdateAvailable, Package = version } :
- new CheckForUpdateResult { AvailableVersion = ApplicationVersion.ToString(), IsUpdateAvailable = false };
-
- HasUpdateAvailable = result.IsUpdateAvailable;
-
- if (result.IsUpdateAvailable)
+ else if (ConfigurationManager.CommonConfiguration.SystemUpdateLevel == PackageVersionClass.Beta)
+ {
+ excludeSuffixes.Add("-dev");
+ cacheLength = TimeSpan.FromHours(1);
+ includePreRelease = true;
+ }
+ else if (ConfigurationManager.CommonConfiguration.SystemUpdateLevel == PackageVersionClass.Dev)
{
- Logger.Info("New application version is available: {0}", result.AvailableVersion);
+ excludeSuffixes.Add("-dev");
+ cacheLength = TimeSpan.FromMinutes(5);
+ includePreRelease = true;
}
- return result;
+ return await new GithubUpdater(HttpClient, JsonSerializer, cacheLength)
+ .CheckForUpdateResult("MediaBrowser", "Emby", ApplicationVersion, includePreRelease, excludeSuffixes.ToArray(), _releaseAssetFilename, "MBServer", "Mbserver.zip", cancellationToken).ConfigureAwait(false);
}
/// <summary>
diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs
index 3fec815f5..69b78e02b 100644
--- a/MediaBrowser.ServerApplication/MainStartup.cs
+++ b/MediaBrowser.ServerApplication/MainStartup.cs
@@ -225,7 +225,7 @@ namespace MediaBrowser.ServerApplication
logManager,
options,
fileSystem,
- "MBServer",
+ "emby.windows.zip",
nativeApp);
var initProgress = new Progress<double>();