aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-08-25 17:30:35 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-08-25 17:30:35 -0400
commit86bc77fd6aa9f366e29cd789de112e4f1f6e7fd9 (patch)
tree8d71e9b2c44d35e65a15624ddb1a27e1d64fcac4 /MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs
parent2b61894e3ce1c0ec6d188a6be550cf22c2f84fa9 (diff)
fix update level migration
Diffstat (limited to 'MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs')
-rw-r--r--MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs57
1 files changed, 29 insertions, 28 deletions
diff --git a/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs b/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs
index fa354065c..948fe114a 100644
--- a/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs
+++ b/MediaBrowser.Server.Startup.Common/Migrations/UpdateLevelMigration.cs
@@ -41,16 +41,7 @@ namespace MediaBrowser.Server.Startup.Common.Migrations
{
var updateLevel = _config.Configuration.SystemUpdateLevel;
- // Go down a level
- if (updateLevel == PackageVersionClass.Release)
- {
- updateLevel = PackageVersionClass.Beta;
- }
- else if (updateLevel == PackageVersionClass.Beta)
- {
- updateLevel = PackageVersionClass.Dev;
- }
- else if (updateLevel == PackageVersionClass.Dev)
+ if (updateLevel == PackageVersionClass.Dev)
{
// It's already dev, there's nothing to check
return;
@@ -66,32 +57,42 @@ namespace MediaBrowser.Server.Startup.Common.Migrations
private async Task CheckVersion(Version currentVersion, PackageVersionClass updateLevel, CancellationToken cancellationToken)
{
- var result = await new GithubUpdater(_httpClient, _jsonSerializer, TimeSpan.FromMinutes(5))
- .CheckForUpdateResult("MediaBrowser", "Emby", currentVersion, PackageVersionClass.Beta, _releaseAssetFilename, "MBServer", "Mbserver.zip",
- cancellationToken).ConfigureAwait(false);
+ var releases = await new GithubUpdater(_httpClient, _jsonSerializer, TimeSpan.FromMinutes(5))
+ .GetLatestReleases("MediaBrowser", "Emby", _releaseAssetFilename, cancellationToken).ConfigureAwait(false);
- if (result != null && result.IsUpdateAvailable)
- {
- _config.Configuration.SystemUpdateLevel = updateLevel;
- _config.SaveConfiguration();
- return;
- }
+ var newUpdateLevel = updateLevel;
- // Go down a level
- if (updateLevel == PackageVersionClass.Release)
+ if (releases.Count >= 2)
{
- updateLevel = PackageVersionClass.Beta;
+ var beta = releases[1];
+ Version version;
+ if (Version.TryParse(beta.tag_name, out version))
+ {
+ if (currentVersion >= version)
+ {
+ newUpdateLevel = PackageVersionClass.Beta;
+ }
+ }
}
- else if (updateLevel == PackageVersionClass.Beta)
+
+ if (releases.Count >= 3)
{
- updateLevel = PackageVersionClass.Dev;
+ var dev = releases[2];
+ Version version;
+ if (Version.TryParse(dev.tag_name, out version))
+ {
+ if (currentVersion >= version)
+ {
+ newUpdateLevel = PackageVersionClass.Dev;
+ }
+ }
}
- else
+
+ if (newUpdateLevel != updateLevel)
{
- return;
+ _config.Configuration.SystemUpdateLevel = newUpdateLevel;
+ _config.SaveConfiguration();
}
-
- await CheckVersion(currentVersion, updateLevel, cancellationToken).ConfigureAwait(false);
}
}
}