diff --git a/Program.cs b/Program.cs
index c058c33..2f057d8 100644
--- a/Program.cs
+++ b/Program.cs
@@ -39,6 +39,8 @@ public static class Program
Console.WriteLine("--generate-code Generate a Steam Guard code and exit. (default)");
Console.WriteLine("--encrypt Encrypt your maFiles or change your encryption passkey.");
Console.WriteLine("--decrypt Remove encryption from your maFiles.");
+ Console.WriteLine("--trade List all trade confirmations across all accounts, or of the user\n" +
+ " specified with --user");
return;
}
Verbose = args.Contains("-v") || args.Contains("--verbose");
@@ -58,6 +60,10 @@ public static class Program
else if (args.Contains("--setup"))
{
action = "setup";
+ }
+ else if (args.Contains("--trade"))
+ {
+ action = "trade";
}
// Misc
if (args.Contains("--user") || args.Contains("-u"))
@@ -112,6 +118,9 @@ public static class Program
case "setup":
throw new NotSupportedException();
break;
+ case "trade":
+ TradeList(user);
+ break;
default:
Console.WriteLine("error: Unknown action: {0}", action);
return;
@@ -220,4 +229,55 @@ public static class Program
}
return true;
}
+
+ static void TradeList(string user = "")
+ {
+ if (Verbose) Console.WriteLine("Opening manifest...");
+ Manifest = Manifest.GetManifest(true);
+ if (Verbose) Console.WriteLine("Reading accounts from manifest...");
+ if (Manifest.Encrypted)
+ {
+ string passkey = Manifest.PromptForPassKey();
+ SteamGuardAccounts = Manifest.GetAllAccounts(passkey);
+ }
+ else
+ {
+ SteamGuardAccounts = Manifest.GetAllAccounts();
+ }
+ if (SteamGuardAccounts.Length == 0)
+ {
+ Console.WriteLine("error: No accounts read.");
+ return;
+ }
+
+ for (int i = 0; i < SteamGuardAccounts.Length; i++)
+ {
+ SteamGuardAccount account = SteamGuardAccounts[i];
+ if (user != "")
+ {
+ if (account.AccountName.ToLower() == user.ToLower())
+ {
+ showTradeConfirmations(account);
+ break;
+ }
+ }
+ else
+ {
+ showTradeConfirmations(account);
+ }
+ }
+ }
+
+ static void showTradeConfirmations(SteamGuardAccount account)
+ {
+ Console.WriteLine($"Checking trade confirmations for {account.AccountName}...");
+ if (Verbose) Console.WriteLine("Refeshing Session...");
+ account.RefreshSession();
+
+ Confirmation[] trades = account.FetchConfirmations();
+ foreach (var trade in trades)
+ {
+ Console.WriteLine($"ID: {trade.ID} Key: {trade.Key} Description: {trade.Description}");
+ }
+ }
}
diff --git a/steamguard-cli.csproj b/steamguard-cli.csproj
index b540346..bd94864 100644
--- a/steamguard-cli.csproj
+++ b/steamguard-cli.csproj
@@ -52,6 +52,9 @@
.\build\SteamAuth.dll
+
+ ..\..\..\..\..\usr\lib\mono\4.5\System.dll
+
-
+
\ No newline at end of file