mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Fix dev build update check
This commit is contained in:
parent
231febfe39
commit
2da874509a
5 changed files with 32 additions and 26 deletions
|
@ -26,7 +26,6 @@ You should have received a copy of the GNU General Public License
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace ShareX.HelpersLib
|
namespace ShareX.HelpersLib
|
||||||
{
|
{
|
||||||
|
@ -40,6 +39,7 @@ public class GitHubUpdateChecker : UpdateChecker
|
||||||
private const string APIURL = "https://api.github.com";
|
private const string APIURL = "https://api.github.com";
|
||||||
|
|
||||||
private string ReleasesURL => $"{APIURL}/repos/{Owner}/{Repo}/releases";
|
private string ReleasesURL => $"{APIURL}/repos/{Owner}/{Repo}/releases";
|
||||||
|
private string LatestReleaseURL => $"{ReleasesURL}/latest";
|
||||||
|
|
||||||
public GitHubUpdateChecker(string owner, string repo)
|
public GitHubUpdateChecker(string owner, string repo)
|
||||||
{
|
{
|
||||||
|
@ -105,22 +105,36 @@ protected List<GitHubRelease> GetReleases()
|
||||||
return releases;
|
return releases;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected GitHubRelease GetLatestRelease()
|
||||||
|
{
|
||||||
|
GitHubRelease latestRelease = null;
|
||||||
|
|
||||||
|
string response = URLHelpers.DownloadString(LatestReleaseURL);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(response))
|
||||||
|
{
|
||||||
|
latestRelease = JsonConvert.DeserializeObject<GitHubRelease>(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
return latestRelease;
|
||||||
|
}
|
||||||
|
|
||||||
protected GitHubRelease GetLatestRelease(bool includePreRelease)
|
protected GitHubRelease GetLatestRelease(bool includePreRelease)
|
||||||
{
|
{
|
||||||
GitHubRelease latestRelease = null;
|
GitHubRelease latestRelease = null;
|
||||||
|
|
||||||
List<GitHubRelease> releases = GetReleases();
|
if (includePreRelease)
|
||||||
|
|
||||||
if (releases != null && releases.Count > 0)
|
|
||||||
{
|
{
|
||||||
if (includePreRelease)
|
List<GitHubRelease> releases = GetReleases();
|
||||||
|
|
||||||
|
if (releases != null && releases.Count > 0)
|
||||||
{
|
{
|
||||||
latestRelease = releases[0];
|
latestRelease = releases[0];
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
latestRelease = releases.FirstOrDefault(x => !x.prerelease);
|
{
|
||||||
}
|
latestRelease = GetLatestRelease();
|
||||||
}
|
}
|
||||||
|
|
||||||
return latestRelease;
|
return latestRelease;
|
||||||
|
|
|
@ -36,7 +36,6 @@ public class GitHubUpdateManager : IDisposable
|
||||||
public TimeSpan UpdateCheckInterval { get; private set; } = TimeSpan.FromHours(1);
|
public TimeSpan UpdateCheckInterval { get; private set; } = TimeSpan.FromHours(1);
|
||||||
public string GitHubOwner { get; set; }
|
public string GitHubOwner { get; set; }
|
||||||
public string GitHubRepo { get; set; }
|
public string GitHubRepo { get; set; }
|
||||||
public bool IsDev { get; set; } // If current build is dev and latest stable release is same version as current build then it will be downloaded
|
|
||||||
public bool IsPortable { get; set; } // If current build is portable then download URL will be opened in browser instead of downloading it
|
public bool IsPortable { get; set; } // If current build is portable then download URL will be opened in browser instead of downloading it
|
||||||
public bool CheckPreReleaseUpdates { get; set; }
|
public bool CheckPreReleaseUpdates { get; set; }
|
||||||
|
|
||||||
|
@ -44,15 +43,10 @@ public class GitHubUpdateManager : IDisposable
|
||||||
private Timer updateTimer = null;
|
private Timer updateTimer = null;
|
||||||
private readonly object updateTimerLock = new object();
|
private readonly object updateTimerLock = new object();
|
||||||
|
|
||||||
public GitHubUpdateManager(string owner, string repo)
|
public GitHubUpdateManager(string owner, string repo, bool portable = false)
|
||||||
{
|
{
|
||||||
GitHubOwner = owner;
|
GitHubOwner = owner;
|
||||||
GitHubRepo = repo;
|
GitHubRepo = repo;
|
||||||
}
|
|
||||||
|
|
||||||
public GitHubUpdateManager(string owner, string repo, bool dev, bool portable) : this(owner, repo)
|
|
||||||
{
|
|
||||||
IsDev = dev;
|
|
||||||
IsPortable = portable;
|
IsPortable = portable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +88,6 @@ public GitHubUpdateChecker CreateUpdateChecker()
|
||||||
{
|
{
|
||||||
return new GitHubUpdateChecker(GitHubOwner, GitHubRepo)
|
return new GitHubUpdateChecker(GitHubOwner, GitHubRepo)
|
||||||
{
|
{
|
||||||
IsDev = IsDev,
|
|
||||||
IsPortable = IsPortable,
|
IsPortable = IsPortable,
|
||||||
IncludePreRelease = CheckPreReleaseUpdates
|
IncludePreRelease = CheckPreReleaseUpdates
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,7 +38,7 @@ public partial class UpdateMessageBox : Form
|
||||||
|
|
||||||
protected override bool ShowWithoutActivation => !ActivateWindow;
|
protected override bool ShowWithoutActivation => !ActivateWindow;
|
||||||
|
|
||||||
public UpdateMessageBox(UpdateChecker updateChecker, bool activateWindow = true, bool devBuild = false)
|
public UpdateMessageBox(UpdateChecker updateChecker, bool activateWindow = true)
|
||||||
{
|
{
|
||||||
ActivateWindow = activateWindow;
|
ActivateWindow = activateWindow;
|
||||||
|
|
||||||
|
@ -68,20 +68,19 @@ public UpdateMessageBox(UpdateChecker updateChecker, bool activateWindow = true,
|
||||||
sbText.Append(Resources.UpdateMessageBox_UpdateMessageBox_CurrentVersion);
|
sbText.Append(Resources.UpdateMessageBox_UpdateMessageBox_CurrentVersion);
|
||||||
sbText.Append(": ");
|
sbText.Append(": ");
|
||||||
sbText.Append(updateChecker.CurrentVersion);
|
sbText.Append(updateChecker.CurrentVersion);
|
||||||
if (updateChecker.IsDev) sbText.Append(" Dev");
|
|
||||||
sbText.AppendLine();
|
sbText.AppendLine();
|
||||||
sbText.Append(Resources.UpdateMessageBox_UpdateMessageBox_LatestVersion);
|
sbText.Append(Resources.UpdateMessageBox_UpdateMessageBox_LatestVersion);
|
||||||
sbText.Append(": ");
|
sbText.Append(": ");
|
||||||
sbText.Append(updateChecker.LatestVersion);
|
sbText.Append(updateChecker.LatestVersion);
|
||||||
if (devBuild) sbText.Append(" Dev");
|
if (updateChecker.IsDev) sbText.Append(" Dev");
|
||||||
if (updateChecker is GitHubUpdateChecker githubUpdateChecker && githubUpdateChecker.IsPreRelease) sbText.Append(" (Pre-release)");
|
if (updateChecker is GitHubUpdateChecker githubUpdateChecker && githubUpdateChecker.IsPreRelease) sbText.Append(" (Pre-release)");
|
||||||
|
|
||||||
lblText.Text = sbText.ToString();
|
lblText.Text = sbText.ToString();
|
||||||
|
|
||||||
lblViewChangelog.Visible = !devBuild;
|
lblViewChangelog.Visible = !updateChecker.IsDev;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DialogResult Start(UpdateChecker updateChecker, bool activateWindow = true, bool devBuild = false)
|
public static DialogResult Start(UpdateChecker updateChecker, bool activateWindow = true)
|
||||||
{
|
{
|
||||||
DialogResult result = DialogResult.None;
|
DialogResult result = DialogResult.None;
|
||||||
|
|
||||||
|
@ -91,7 +90,7 @@ public static DialogResult Start(UpdateChecker updateChecker, bool activateWindo
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (UpdateMessageBox messageBox = new UpdateMessageBox(updateChecker, activateWindow, devBuild))
|
using (UpdateMessageBox messageBox = new UpdateMessageBox(updateChecker, activateWindow))
|
||||||
{
|
{
|
||||||
result = messageBox.ShowDialog();
|
result = messageBox.ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
|
@ -355,7 +355,7 @@ private static void Run()
|
||||||
SettingManager.LoadInitialSettings();
|
SettingManager.LoadInitialSettings();
|
||||||
|
|
||||||
Uploader.UpdateServicePointManager();
|
Uploader.UpdateServicePointManager();
|
||||||
UpdateManager = new GitHubUpdateManager("ShareX", "ShareX", Dev, Portable);
|
UpdateManager = new GitHubUpdateManager("ShareX", "ShareX", Portable);
|
||||||
LanguageHelper.ChangeLanguage(Settings.Language);
|
LanguageHelper.ChangeLanguage(Settings.Language);
|
||||||
CleanupManager.CleanupAsync();
|
CleanupManager.CleanupAsync();
|
||||||
Helpers.TryFixHandCursor();
|
Helpers.TryFixHandCursor();
|
||||||
|
|
|
@ -1880,7 +1880,7 @@ public static async Task DownloadDevBuild()
|
||||||
|
|
||||||
await updateChecker.CheckUpdateAsync();
|
await updateChecker.CheckUpdateAsync();
|
||||||
|
|
||||||
UpdateMessageBox.Start(updateChecker, true, true);
|
UpdateMessageBox.Start(updateChecker, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DownloadAppVeyorBuild()
|
public static async Task DownloadAppVeyorBuild()
|
||||||
|
@ -1894,7 +1894,7 @@ public static async Task DownloadAppVeyorBuild()
|
||||||
|
|
||||||
await updateChecker.CheckUpdateAsync();
|
await updateChecker.CheckUpdateAsync();
|
||||||
|
|
||||||
UpdateMessageBox.Start(updateChecker, true, true);
|
UpdateMessageBox.Start(updateChecker, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Image CreateQRCode(string text, int width, int height)
|
public static Image CreateQRCode(string text, int width, int height)
|
||||||
|
|
Loading…
Reference in a new issue