diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4caa0f4c..027c640a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
### Changelog
+#### Version - 1.0 beta 6 - 12/14/2019
+* Fixes for some strange steam library setups
+* Implemented download/install counts
+
#### Version - 1.0 beta 5 - 12/14/2019
* Added LoversLab download support
* Nexus and LL logins now happen via a in-ap browser
diff --git a/Wabbajack.CacheServer/Metrics.cs b/Wabbajack.CacheServer/Metrics.cs
new file mode 100644
index 00000000..014136a1
--- /dev/null
+++ b/Wabbajack.CacheServer/Metrics.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Alphaleonis.Win32.Filesystem;
+using Nancy;
+using Wabbajack.Common;
+
+namespace Wabbajack.CacheServer
+{
+ ///
+ /// Extremely
+ ///
+ public class Metrics : NancyModule
+ {
+ private static SemaphoreSlim _lockObject = new SemaphoreSlim(1);
+
+ public static async Task Log(params object[] args)
+ {
+ var msg = new[] {string.Join("\t", args.Select(a => a.ToString()))};
+ Utils.Log(msg.First());
+ await _lockObject.WaitAsync();
+ try
+ {
+ File.AppendAllLines("stats.tsv", msg);
+ }
+ finally
+ {
+ _lockObject.Release();
+ }
+ }
+
+ public Metrics() : base("/")
+ {
+ Get("/metrics/{Action}/{Value}", HandleMetrics);
+ }
+
+ private async Task HandleMetrics(dynamic arg)
+ {
+ var date = DateTime.UtcNow;
+ await Log(date, arg.Action, arg.Value);
+ return date.ToString();
+ }
+ }
+}
diff --git a/Wabbajack.CacheServer/Wabbajack.CacheServer.csproj b/Wabbajack.CacheServer/Wabbajack.CacheServer.csproj
index 76ab8e3f..23acbccd 100644
--- a/Wabbajack.CacheServer/Wabbajack.CacheServer.csproj
+++ b/Wabbajack.CacheServer/Wabbajack.CacheServer.csproj
@@ -74,6 +74,7 @@
+
diff --git a/Wabbajack.Common/Metrics.cs b/Wabbajack.Common/Metrics.cs
new file mode 100644
index 00000000..a276e362
--- /dev/null
+++ b/Wabbajack.Common/Metrics.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Wabbajack.Common
+{
+ public class Metrics
+ {
+ ///
+ /// This is all we track for metrics, action, and value. The action will be like
+ /// "downloaded", the value "Joe's list".
+ ///
+ ///
+ ///
+ public static async Task Send(string action, string value)
+ {
+ var client = new HttpClient();
+ try
+ {
+ await client.GetAsync($"http://build.wabbajack.org/metrics/{action}/{value}");
+ }
+ catch (Exception) { }
+ }
+ }
+}
diff --git a/Wabbajack.Common/Wabbajack.Common.csproj b/Wabbajack.Common/Wabbajack.Common.csproj
index 2efda655..b8cfa161 100644
--- a/Wabbajack.Common/Wabbajack.Common.csproj
+++ b/Wabbajack.Common/Wabbajack.Common.csproj
@@ -108,6 +108,7 @@
+
diff --git a/Wabbajack.Lib/MO2Installer.cs b/Wabbajack.Lib/MO2Installer.cs
index 1f6f800a..0bad384e 100644
--- a/Wabbajack.Lib/MO2Installer.cs
+++ b/Wabbajack.Lib/MO2Installer.cs
@@ -39,6 +39,8 @@ namespace Wabbajack.Lib
protected override async Task _Begin(CancellationToken cancel)
{
if (cancel.IsCancellationRequested) return false;
+ var metric = Metrics.Send("begin_install", ModList.Name);
+
ConfigureProcessor(18, await RecommendQueueSize());
var game = ModList.GameType.MetaData();
@@ -134,6 +136,8 @@ namespace Wabbajack.Lib
SetScreenSizeInPrefs();
UpdateTracker.NextStep("Installation complete! You may exit the program.");
+ var metric2 = Metrics.Send("finish_install", ModList.Name);
+
return true;
}
diff --git a/Wabbajack.Lib/VortexInstaller.cs b/Wabbajack.Lib/VortexInstaller.cs
index 0a17c2a2..f0255dff 100644
--- a/Wabbajack.Lib/VortexInstaller.cs
+++ b/Wabbajack.Lib/VortexInstaller.cs
@@ -37,6 +37,7 @@ namespace Wabbajack.Lib
protected override async Task _Begin(CancellationToken cancel)
{
if (cancel.IsCancellationRequested) return false;
+ var metric = Metrics.Send("begin_install", ModList.Name);
MessageBox.Show(
"Vortex Support is still experimental and may produce unexpected results. " +
"If anything fails go to the special vortex support channels on the discord. @erri120#2285 " +
@@ -84,8 +85,9 @@ namespace Wabbajack.Lib
if (cancel.IsCancellationRequested) return false;
await InstallSteamWorkshopItems();
- //InstallIncludedDownloadMetas();
+ //InstallIncludedDownloadMetas();
+ var metric2 = Metrics.Send("finish_install", ModList.Name);
Info("Installation complete! You may exit the program.");
return true;
}
diff --git a/Wabbajack/Properties/AssemblyInfo.cs b/Wabbajack/Properties/AssemblyInfo.cs
index 7a8ab008..25a01738 100644
--- a/Wabbajack/Properties/AssemblyInfo.cs
+++ b/Wabbajack/Properties/AssemblyInfo.cs
@@ -49,5 +49,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.10.0")]
-[assembly: AssemblyFileVersion("1.0.10.0")]
+[assembly: AssemblyVersion("1.0.11.0")]
+[assembly: AssemblyFileVersion("1.0.11.0")]
diff --git a/Wabbajack/View Models/ModListMetadataVM.cs b/Wabbajack/View Models/ModListMetadataVM.cs
index 6cff8f03..747eb1f6 100644
--- a/Wabbajack/View Models/ModListMetadataVM.cs
+++ b/Wabbajack/View Models/ModListMetadataVM.cs
@@ -81,6 +81,7 @@ namespace Wabbajack
var sub = queue.Status.Select(i => i.ProgressPercent)
.Subscribe(percent => ProgressPercent = percent);
TaskCompletionSource tcs = new TaskCompletionSource();
+ var metric = Metrics.Send("downloading", Metadata.Title);
queue.QueueTask(async () =>
{
var downloader = DownloadDispatcher.ResolveArchive(Metadata.Links.Download);