From 0bba0f9256f17903e0f1e52c1db60f441a1a86b4 Mon Sep 17 00:00:00 2001
From: Mbucari <37587114+Mbucari@users.noreply.github.com>
Date: Tue, 26 Jul 2022 12:53:49 -0600
Subject: [PATCH 1/9] Add files via upload
---
appcasttest.xml | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 appcasttest.xml
diff --git a/appcasttest.xml b/appcasttest.xml
new file mode 100644
index 00000000..effb5eb0
--- /dev/null
+++ b/appcasttest.xml
@@ -0,0 +1,22 @@
+
+
+
+ Libation
+ https://raw.githubusercontent.com/Mbucari/Libation/master/appcasttest.xml
+ Most recent changes with links to updates.
+ en
+ -
+ Test Updater
+
+ https://github.com/Mbucari/Libation/blob/master/Documentation/SearchingAndFiltering.md
+
+ Mon, 25 July 2022 10:30:00 +0000
+
+
+
+
\ No newline at end of file
From 308619b01afb6508b501907a56c2c4f6a36cf483 Mon Sep 17 00:00:00 2001
From: Michael Bucari-Tovo
Date: Wed, 27 Jul 2022 00:30:35 -0600
Subject: [PATCH 2/9] Fix bug if MessageBox called from worker thread
---
Source/LibationAvalonia/MessageBox.cs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Source/LibationAvalonia/MessageBox.cs b/Source/LibationAvalonia/MessageBox.cs
index 3d25be05..f92eedde 100644
--- a/Source/LibationAvalonia/MessageBox.cs
+++ b/Source/LibationAvalonia/MessageBox.cs
@@ -149,7 +149,11 @@ Libation.
private static DialogResult ShowCoreAsync(Window owner, string message, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, bool saveAndRestorePosition = true)
+ => Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() => ShowCoreAsync2(owner, message, caption, buttons, icon, defaultButton, saveAndRestorePosition)).GetAwaiter().GetResult();
+
+ private static DialogResult ShowCoreAsync2(Window owner, string message, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, bool saveAndRestorePosition = true)
{
+
owner ??= (Application.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime).MainWindow;
var dialog = new MessageBoxWindow(saveAndRestorePosition);
From 3af47ab3954da6ec8fc33df3031282e951b3bb7f Mon Sep 17 00:00:00 2001
From: Michael Bucari-Tovo
Date: Wed, 27 Jul 2022 00:32:06 -0600
Subject: [PATCH 3/9] Add update name pattern matching
---
Source/AppScaffolding/LibationScaffolding.cs | 14 ++++++++------
Source/LibationWinForms/Program.cs | 2 +-
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/Source/AppScaffolding/LibationScaffolding.cs b/Source/AppScaffolding/LibationScaffolding.cs
index c5ba959f..f90b5bd3 100644
--- a/Source/AppScaffolding/LibationScaffolding.cs
+++ b/Source/AppScaffolding/LibationScaffolding.cs
@@ -309,10 +309,10 @@ namespace AppScaffolding
LibraryCommands.BookUserDefinedItemCommitted += (_, books) => SearchEngineCommands.UpdateBooks(books);
}
- public static UpgradeProperties GetLatestRelease()
+ public static UpgradeProperties GetLatestRelease(string regexpattern = ".*")
{
// timed out
- var latest = getLatestRelease(TimeSpan.FromSeconds(10));
+ var latest = getLatestRelease(TimeSpan.FromSeconds(10), regexpattern);
if (latest is null)
return null;
@@ -337,11 +337,11 @@ namespace AppScaffolding
return new(zipUrl, latest.HtmlUrl, zip.Name, latestRelease);
}
- private static Octokit.Release getLatestRelease(TimeSpan timeout)
+ private static Octokit.Release getLatestRelease(TimeSpan timeout, string regexpattern)
{
try
{
- var task = System.Threading.Tasks.Task.Run(() => getLatestRelease());
+ var task = System.Threading.Tasks.Task.Run(() => getLatestRelease(regexpattern));
if (task.Wait(timeout))
return task.Result;
@@ -353,13 +353,15 @@ namespace AppScaffolding
}
return null;
}
- private static Octokit.Release getLatestRelease()
+ private static Octokit.Release getLatestRelease(string regexpattern)
{
var gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("Libation"));
// https://octokitnet.readthedocs.io/en/latest/releases/
var releases = gitHubClient.Repository.Release.GetAll("rmcrackan", "Libation").GetAwaiter().GetResult();
- var latest = releases.First(r => !r.Draft && !r.Prerelease);
+
+ var regex = new System.Text.RegularExpressions.Regex(regexpattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
+ var latest = releases.FirstOrDefault(r => !r.Draft && !r.Prerelease && r.Assets.Any(a => regex.IsMatch(a.Name)));
return latest;
}
}
diff --git a/Source/LibationWinForms/Program.cs b/Source/LibationWinForms/Program.cs
index 29d49a92..8ffff7cb 100644
--- a/Source/LibationWinForms/Program.cs
+++ b/Source/LibationWinForms/Program.cs
@@ -170,7 +170,7 @@ namespace LibationWinForms
try
{
- upgradeProperties = AppScaffolding.LibationScaffolding.GetLatestRelease();
+ upgradeProperties = AppScaffolding.LibationScaffolding.GetLatestRelease(@"Libation\.\d+\.\d+\.\d+-win.zip");
if (upgradeProperties is null)
return;
}
From 59015f438eb06e6df10add4163d51eee2d1dec38 Mon Sep 17 00:00:00 2001
From: Michael Bucari-Tovo
Date: Wed, 27 Jul 2022 00:36:13 -0600
Subject: [PATCH 4/9] Add auto app update to windows avalonia
---
.../LibationAvalonia/LibationAvalonia.csproj | 3 +
.../Views/MainWindow/MainWindow.axaml.cs | 88 ++++++++++++++++--
Source/LibationAvalonia/ZipExtractor.exe | Bin 0 -> 100352 bytes
3 files changed, 85 insertions(+), 6 deletions(-)
create mode 100644 Source/LibationAvalonia/ZipExtractor.exe
diff --git a/Source/LibationAvalonia/LibationAvalonia.csproj b/Source/LibationAvalonia/LibationAvalonia.csproj
index 572e61f6..06e66b4d 100644
--- a/Source/LibationAvalonia/LibationAvalonia.csproj
+++ b/Source/LibationAvalonia/LibationAvalonia.csproj
@@ -129,6 +129,9 @@
Always
+
+ Always
+
\ No newline at end of file
diff --git a/Source/LibationAvalonia/Views/MainWindow/MainWindow.axaml.cs b/Source/LibationAvalonia/Views/MainWindow/MainWindow.axaml.cs
index f8f0d155..0bf8611f 100644
--- a/Source/LibationAvalonia/Views/MainWindow/MainWindow.axaml.cs
+++ b/Source/LibationAvalonia/Views/MainWindow/MainWindow.axaml.cs
@@ -8,8 +8,7 @@ using LibationAvalonia.ViewModels;
using LibationFileManager;
using DataLayer;
using System.Collections.Generic;
-using System.Linq;
-using LibationAvalonia.Dialogs;
+using System.Threading.Tasks;
namespace LibationAvalonia.Views
{
@@ -67,11 +66,88 @@ namespace LibationAvalonia.Views
private async void MainWindow_Opened(object sender, EventArgs e)
{
- /*
- var charReplace = new EditReplacementChars();
+#if !DEBUG
+ if (App.IsWindows)
+ {
+ try
+ {
+ await Task.Run(checkForAndDownloadUpdate);
+ }
+ catch(Exception ex)
+ {
+ Serilog.Log.Logger.Error(ex, "An error occured while checking for app updates.");
+ return;
+ }
+ }
+#endif
+ }
- await charReplace.ShowDialog(this);
- */
+ private async Task checkForAndDownloadUpdate()
+ {
+ AppScaffolding.UpgradeProperties upgradeProperties;
+ try
+ {
+ upgradeProperties = AppScaffolding.LibationScaffolding.GetLatestRelease(@"Libation\.\d+\.\d+\.\d+-win-avalonia.zip");
+
+ if (upgradeProperties is null)
+ return;
+ }
+ catch (Exception ex)
+ {
+ Serilog.Log.Logger.Error(ex, "Failed to check for update");
+ return;
+ }
+
+ if (upgradeProperties.ZipUrl is null)
+ {
+ Serilog.Log.Logger.Information("Download link for new version not found");
+ return;
+ }
+
+ //Silently download the update in the background, ave it to a temp file.
+
+ var zipPath = System.IO.Path.GetTempFileName();
+ try
+ {
+ System.Net.Http.HttpClient cli = new();
+ using (var fs = System.IO.File.OpenWrite(zipPath))
+ {
+ using (var dlStream = await cli.GetStreamAsync(new Uri(upgradeProperties.ZipUrl)))
+ await dlStream.CopyToAsync(fs);
+ }
+ }
+ catch (Exception ex)
+ {
+ Serilog.Log.Logger.Error(ex, "Failed to download the update: {pdate}", upgradeProperties.ZipUrl);
+ return;
+ }
+
+ var result = MessageBox.Show($"{upgradeProperties.HtmlUrl}\r\n\r\nWould you like to upgrade now?", "New version available", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
+
+ if (result != DialogResult.Yes)
+ return;
+
+ var thisExe = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
+ var thisDir = System.IO.Path.GetDirectoryName(thisExe);
+
+ var args = $"--input {zipPath} --output {thisDir} --executable {thisExe}";
+
+ var zipExtractor = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "ZipExtractor.exe");
+
+ System.IO.File.Copy("ZipExtractor.exe", zipExtractor, overwrite: true);
+
+ var psi = new System.Diagnostics.ProcessStartInfo()
+ {
+ FileName = zipExtractor,
+ UseShellExecute = true,
+ Verb = "runas",
+ WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
+ Arguments = args,
+ CreateNoWindow = true
+ };
+
+ System.Diagnostics.Process.Start(psi);
+ Environment.Exit(0);
}
public void ProductsDisplay_Initialized1(object sender, EventArgs e)
diff --git a/Source/LibationAvalonia/ZipExtractor.exe b/Source/LibationAvalonia/ZipExtractor.exe
new file mode 100644
index 0000000000000000000000000000000000000000..29e0a3b3e242ede8633fc6fc4caa16f360a5cd9a
GIT binary patch
literal 100352
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