Removed Depot ID since they can be used independently from DLCs.
Improve log verbosity.
This commit is contained in:
parent
fd518e4504
commit
0c1c1226fb
@ -34,7 +34,7 @@ namespace GoldbergGUI.Core.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public List<DlcApp> DlcList { get; set; }
|
public List<DlcApp> DlcList { get; set; }
|
||||||
|
|
||||||
//public List<Depot> Depots { get; set; }
|
public List<int> Depots { get; set; }
|
||||||
|
|
||||||
public List<Group> SubscribedGroups { get; set; }
|
public List<Group> SubscribedGroups { get; set; }
|
||||||
|
|
||||||
@ -67,10 +67,7 @@ namespace GoldbergGUI.Core.Models
|
|||||||
|
|
||||||
public class DlcApp : SteamApp
|
public class DlcApp : SteamApp
|
||||||
{
|
{
|
||||||
/// <summary>
|
//public int? DepotId { get; set; }
|
||||||
/// ID of depot (optional)
|
|
||||||
/// </summary>
|
|
||||||
public int? DepotId { get; set; }
|
|
||||||
//public string DepotName { get; set; }
|
//public string DepotName { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Path to DLC (relative to Steam API DLL) (optional)
|
/// Path to DLC (relative to Steam API DLL) (optional)
|
||||||
|
@ -29,6 +29,7 @@ namespace GoldbergGUI.Core.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ReSharper disable once UnusedType.Global
|
// ReSharper disable once UnusedType.Global
|
||||||
|
// ReSharper disable once ClassNeverInstantiated.Global
|
||||||
public class GoldbergService : IGoldbergService
|
public class GoldbergService : IGoldbergService
|
||||||
{
|
{
|
||||||
private IMvxLog _log;
|
private IMvxLog _log;
|
||||||
@ -221,6 +222,7 @@ namespace GoldbergGUI.Core.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
var dlcTxt = Path.Combine(path, "steam_settings", "DLC.txt");
|
var dlcTxt = Path.Combine(path, "steam_settings", "DLC.txt");
|
||||||
|
var appPathTxt = Path.Combine(path, "steam_settings", "app_paths.txt");
|
||||||
if (File.Exists(dlcTxt))
|
if (File.Exists(dlcTxt))
|
||||||
{
|
{
|
||||||
_log.Info("Getting DLCs...");
|
_log.Info("Getting DLCs...");
|
||||||
@ -237,6 +239,20 @@ namespace GoldbergGUI.Core.Services
|
|||||||
Name = match.Groups["name"].Value
|
Name = match.Groups["name"].Value
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReSharper disable once InvertIf
|
||||||
|
if (File.Exists(appPathTxt))
|
||||||
|
{
|
||||||
|
var appPathAllLinesAsync = await File.ReadAllLinesAsync(dlcTxt).ConfigureAwait(false);
|
||||||
|
var appPathExpression = new Regex(@"(?<id>.*) *= *(?<appPath>.*)");
|
||||||
|
foreach (var line in appPathAllLinesAsync)
|
||||||
|
{
|
||||||
|
var match = appPathExpression.Match(line);
|
||||||
|
if (match.Success)
|
||||||
|
dlcList[Convert.ToInt32(match.Groups["id"].Value)].AppPath =
|
||||||
|
match.Groups["appPath"].Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -273,6 +289,7 @@ namespace GoldbergGUI.Core.Services
|
|||||||
{
|
{
|
||||||
CopyDllFiles(path, x64Name);
|
CopyDllFiles(path, x64Name);
|
||||||
}
|
}
|
||||||
|
_log.Info("DLL setup finished!");
|
||||||
|
|
||||||
// Create steam_settings folder if missing
|
// Create steam_settings folder if missing
|
||||||
_log.Info("Saving settings...");
|
_log.Info("Saving settings...");
|
||||||
@ -285,50 +302,81 @@ namespace GoldbergGUI.Core.Services
|
|||||||
await File.WriteAllTextAsync(Path.Combine(path, "steam_appid.txt"), c.AppId.ToString())
|
await File.WriteAllTextAsync(Path.Combine(path, "steam_appid.txt"), c.AppId.ToString())
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
// DLC
|
// DLC + App path
|
||||||
if (c.DlcList.Count > 0)
|
if (c.DlcList.Count > 0)
|
||||||
{
|
{
|
||||||
var dlcString = "";
|
_log.Info("Saving DLC settings...");
|
||||||
c.DlcList.ForEach(x => dlcString += $"{x}\n");
|
var dlcContent = "";
|
||||||
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "DLC.txt"), dlcString)
|
//var depotContent = "";
|
||||||
|
var appPathContent = "";
|
||||||
|
c.DlcList.ForEach(x =>
|
||||||
|
{
|
||||||
|
dlcContent += $"{x}\n";
|
||||||
|
//depotContent += $"{x.DepotId}\n";
|
||||||
|
appPathContent += $"{x.AppId}={x.AppPath}\n";
|
||||||
|
});
|
||||||
|
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "DLC.txt"), dlcContent)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
|
/*if (!string.Equals(depotContent, ""))
|
||||||
|
{
|
||||||
|
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "depots.txt"), depotContent)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
if (!string.Equals(appPathContent, ""))
|
||||||
|
{
|
||||||
|
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "app_paths.txt"), appPathContent)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
_log.Info("Saved DLC settings.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_log.Info("No DLC set! Removing DLC configuration files...");
|
||||||
if (File.Exists(Path.Combine(path, "steam_settings", "DLC.txt")))
|
if (File.Exists(Path.Combine(path, "steam_settings", "DLC.txt")))
|
||||||
File.Delete(Path.Combine(path, "steam_settings", "DLC.txt"));
|
File.Delete(Path.Combine(path, "steam_settings", "DLC.txt"));
|
||||||
|
if (File.Exists(Path.Combine(path, "steam_settings", "app_paths.txt")))
|
||||||
|
File.Delete(Path.Combine(path, "steam_settings", "app_paths.txt"));
|
||||||
|
_log.Info("Removed DLC configuration files.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Offline
|
// Offline
|
||||||
if (c.Offline)
|
if (c.Offline)
|
||||||
{
|
{
|
||||||
|
_log.Info("Create offline.txt");
|
||||||
await File.Create(Path.Combine(path, "steam_settings", "offline.txt")).DisposeAsync()
|
await File.Create(Path.Combine(path, "steam_settings", "offline.txt")).DisposeAsync()
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_log.Info("Delete offline.txt if it exists");
|
||||||
File.Delete(Path.Combine(path, "steam_settings", "offline.txt"));
|
File.Delete(Path.Combine(path, "steam_settings", "offline.txt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable Networking
|
// Disable Networking
|
||||||
if (c.DisableNetworking)
|
if (c.DisableNetworking)
|
||||||
{
|
{
|
||||||
|
_log.Info("Create disable_networking.txt");
|
||||||
await File.Create(Path.Combine(path, "steam_settings", "disable_networking.txt")).DisposeAsync()
|
await File.Create(Path.Combine(path, "steam_settings", "disable_networking.txt")).DisposeAsync()
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_log.Info("Delete disable_networking.txt if it exists");
|
||||||
File.Delete(Path.Combine(path, "steam_settings", "disable_networking.txt"));
|
File.Delete(Path.Combine(path, "steam_settings", "disable_networking.txt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable Overlay
|
// Disable Overlay
|
||||||
if (c.DisableOverlay)
|
if (c.DisableOverlay)
|
||||||
{
|
{
|
||||||
|
_log.Info("Create disable_overlay.txt");
|
||||||
await File.Create(Path.Combine(path, "steam_settings", "disable_overlay.txt")).DisposeAsync()
|
await File.Create(Path.Combine(path, "steam_settings", "disable_overlay.txt")).DisposeAsync()
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_log.Info("Delete disable_overlay.txt if it exists");
|
||||||
File.Delete(Path.Combine(path, "steam_settings", "disable_overlay.txt"));
|
File.Delete(Path.Combine(path, "steam_settings", "disable_overlay.txt"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -337,17 +385,21 @@ namespace GoldbergGUI.Core.Services
|
|||||||
{
|
{
|
||||||
var steamApiDll = Path.Combine(path, $"{name}.dll");
|
var steamApiDll = Path.Combine(path, $"{name}.dll");
|
||||||
var originalDll = Path.Combine(path, $"{name}_o.dll");
|
var originalDll = Path.Combine(path, $"{name}_o.dll");
|
||||||
var guiBackup = Path.Combine(path, $"{name}.dll.GOLDBERGGUIBACKUP");
|
var guiBackup = Path.Combine(path, $".{name}.dll.GOLDBERGGUIBACKUP");
|
||||||
var goldbergDll = Path.Combine(_goldbergPath, $"{name}.dll");
|
var goldbergDll = Path.Combine(_goldbergPath, $"{name}.dll");
|
||||||
|
|
||||||
if (!File.Exists(originalDll))
|
if (!File.Exists(originalDll))
|
||||||
|
{
|
||||||
|
_log.Info("Back up original Steam API DLL...");
|
||||||
File.Move(steamApiDll, originalDll);
|
File.Move(steamApiDll, originalDll);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
File.Move(steamApiDll, guiBackup, true);
|
File.Move(steamApiDll, guiBackup, true);
|
||||||
File.SetAttributes(guiBackup, FileAttributes.Hidden);
|
File.SetAttributes(guiBackup, FileAttributes.Hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_log.Info("Copy Goldberg DLL to target path...");
|
||||||
File.Copy(goldbergDll, steamApiDll);
|
File.Copy(goldbergDll, steamApiDll);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -411,6 +463,7 @@ namespace GoldbergGUI.Core.Services
|
|||||||
var contentLength = headResponse.Content.Headers.ContentLength;
|
var contentLength = headResponse.Content.Headers.ContentLength;
|
||||||
await client.GetFileAsync(downloadUrl, fileStream).ContinueWith(async t =>
|
await client.GetFileAsync(downloadUrl, fileStream).ContinueWith(async t =>
|
||||||
{
|
{
|
||||||
|
// ReSharper disable once AccessToDisposedClosure
|
||||||
await fileStream.DisposeAsync().ConfigureAwait(false);
|
await fileStream.DisposeAsync().ConfigureAwait(false);
|
||||||
var fileLength = new FileInfo(_goldbergZipPath).Length;
|
var fileLength = new FileInfo(_goldbergZipPath).Length;
|
||||||
// Environment.Exit(128);
|
// Environment.Exit(128);
|
||||||
|
@ -56,12 +56,12 @@
|
|||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
<DataGridTextColumn Header="App ID" Binding="{Binding AppId}" Width="80" />
|
<DataGridTextColumn Header="App ID" Binding="{Binding AppId}" Width="80" />
|
||||||
<DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="*" />
|
<DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="*" />
|
||||||
<DataGridTextColumn Header="Depot ID" Binding="{Binding DepotId}" Width="80" Visibility="{Binding Source={x:Reference showOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}"/>
|
<!--<DataGridTextColumn Header="Depot ID" Binding="{Binding DepotId}" Width="80" Visibility="{Binding Source={x:Reference ShowOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}"/>
|
||||||
<!--<DataGridTextColumn Header="Depot Name" Binding="{Binding DepotName}" Width="*" Visibility="{Binding Source={x:Reference showOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />-->
|
<DataGridTextColumn Header="Depot Name" Binding="{Binding DepotName}" Width="*" Visibility="{Binding Source={x:Reference ShowOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />-->
|
||||||
<DataGridTextColumn Header="App Path" Binding="{Binding AppPath}" Width="*" Visibility="{Binding Source={x:Reference showOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />
|
<DataGridTextColumn Header="App Path" Binding="{Binding AppPath}" Width="*" Visibility="{Binding Source={x:Reference ShowOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</DataGrid>
|
</DataGrid>
|
||||||
<CheckBox Grid.Row="1" x:Name="showOptionalDlcSettings" Margin="0,5,0,0" Content="Show optional settings"/>
|
<CheckBox Grid.Row="1" x:Name="ShowOptionalDlcSettings" Margin="0,5,0,0" Content="Show optional settings"/>
|
||||||
<Button Content="Get _DLCs for AppID" Command="{Binding GetListOfDlcCommand}" Grid.Row="1" Width="120" HorizontalAlignment="Right" Margin="0,5,0,0" Height="20"/>
|
<Button Content="Get _DLCs for AppID" Command="{Binding GetListOfDlcCommand}" Grid.Row="1" Width="120" HorizontalAlignment="Right" Margin="0,5,0,0" Height="20"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
Loading…
Reference in New Issue
Block a user