mirror of
https://github.com/achiez/NebulaAuth-Steam-Desktop-Authenticator-by-Achies.git
synced 2026-07-25 14:24:32 +00:00
8ff960189e
- Update: Added "Copy Password" to Mafile context menu (if available) - Update: "Save Password" now pre-fills the current password in the "Login Again" dialog when encryption is enabled - Fix: Prevented overlapping confirmation cycles in AutoConfirmer - Fix: Added a Snackbar notification when a confirmation cycle is skipped due to a too frequent timer interval - Fix: Fixed a rare bug where the previous proxy was used instead of the current one during session refresh - Fix: Corrected "Session Permanently Expired" message showing on unrelated errors (e.g. network issues) - UI-Fix: Fixed visual glitch where proxy input appeared non-empty when switching to a mafile-specific proxy - Cleanup: Refactored and cleaned up codebase, improved styling and formatting via ReSharper
224 lines
6.5 KiB
C#
224 lines
6.5 KiB
C#
using System.Diagnostics.CodeAnalysis;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace SteamLib.Utility;
|
|
|
|
public static class EnvironmentUtility
|
|
{
|
|
// ReSharper disable once InconsistentNaming
|
|
public static EOSType GetOSType()
|
|
{
|
|
var osVer = Environment.OSVersion;
|
|
var ver = osVer.Version;
|
|
|
|
return osVer.Platform switch
|
|
{
|
|
PlatformID.Win32Windows => ver.Minor switch
|
|
{
|
|
0 => EOSType.Win95,
|
|
10 => EOSType.Win98,
|
|
90 => EOSType.WinME,
|
|
_ => EOSType.WinUnknown
|
|
},
|
|
|
|
PlatformID.Win32NT => ver.Major switch
|
|
{
|
|
4 => EOSType.WinNT,
|
|
5 => ver.Minor switch
|
|
{
|
|
0 => EOSType.Win2000,
|
|
1 => EOSType.WinXP,
|
|
// Assume nobody runs Windows XP Professional x64 Edition
|
|
// It's an edition of Windows Server 2003 anyway.
|
|
2 => EOSType.Win2003,
|
|
_ => EOSType.WinUnknown
|
|
},
|
|
6 => ver.Minor switch
|
|
{
|
|
0 => EOSType.WinVista, // Also Server 2008
|
|
1 => EOSType.Windows7, // Also Server 2008 R2
|
|
2 => EOSType.Windows8, // Also Server 2012
|
|
// Note: The OSVersion property reports the same version number (6.2.0.0) for both Windows 8 and Windows 8.1.- http://msdn.microsoft.com/en-us/library/system.environment.osversion(v=vs.110).aspx
|
|
// In practice, this will only get hit if the application targets Windows 8.1 in the app manifest.
|
|
// See http://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx for more info.
|
|
3 => EOSType.Windows81, // Also Server 2012 R2
|
|
_ => EOSType.WinUnknown
|
|
},
|
|
10 when ver.Build >= 22000 => EOSType.Win11,
|
|
10 => EOSType.Windows10, // Also Server 2016, Server 2019, Server 2022
|
|
_ => EOSType.WinUnknown
|
|
},
|
|
|
|
// The specific minor versions only exist in Valve's enum for LTS versions
|
|
PlatformID.Unix when RuntimeInformation.IsOSPlatform(OSPlatform.Linux) => ver.Major switch
|
|
{
|
|
2 => ver.Minor switch
|
|
{
|
|
2 => EOSType.Linux22,
|
|
4 => EOSType.Linux24,
|
|
6 => EOSType.Linux26,
|
|
_ => EOSType.LinuxUnknown
|
|
},
|
|
3 => ver.Minor switch
|
|
{
|
|
2 => EOSType.Linux32,
|
|
5 => EOSType.Linux35,
|
|
6 => EOSType.Linux36,
|
|
10 => EOSType.Linux310,
|
|
16 => EOSType.Linux316,
|
|
18 => EOSType.Linux318,
|
|
_ => EOSType.Linux3x
|
|
},
|
|
4 => ver.Minor switch
|
|
{
|
|
1 => EOSType.Linux41,
|
|
4 => EOSType.Linux44,
|
|
9 => EOSType.Linux49,
|
|
14 => EOSType.Linux414,
|
|
19 => EOSType.Linux419,
|
|
_ => EOSType.Linux4x
|
|
},
|
|
5 => ver.Minor switch
|
|
{
|
|
4 => EOSType.Linux54,
|
|
10 => EOSType.Linux510,
|
|
_ => EOSType.Linux5x
|
|
},
|
|
6 => EOSType.Linux6x,
|
|
7 => EOSType.Linux7x,
|
|
_ => EOSType.LinuxUnknown
|
|
},
|
|
|
|
PlatformID.Unix when RuntimeInformation.IsOSPlatform(OSPlatform.OSX) => ver.Major switch
|
|
{
|
|
11 => EOSType.MacOS107, // "Lion"
|
|
12 => EOSType.MacOS108, // "Mountain Lion"
|
|
13 => EOSType.MacOS109, // "Mavericks"
|
|
14 => EOSType.MacOS1010, // "Yosemite"
|
|
15 => EOSType.MacOS1011, // El Capitan
|
|
16 => EOSType.MacOS1012, // Sierra
|
|
17 => EOSType.Macos1013, // High Sierra
|
|
18 => EOSType.Macos1014, // Mojave
|
|
19 => EOSType.Macos1015, // Catalina
|
|
20 => EOSType.MacOS11, // Big Sur
|
|
21 => EOSType.MacOS12, // Monterey
|
|
_ => EOSType.MacOSUnknown
|
|
},
|
|
|
|
_ => EOSType.Unknown
|
|
};
|
|
}
|
|
}
|
|
|
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
public enum EOSType
|
|
{
|
|
Unknown = -1,
|
|
Web = -700,
|
|
IOSUnknown = -600,
|
|
IOS1 = -599,
|
|
IOS2 = -598,
|
|
IOS3 = -597,
|
|
IOS4 = -596,
|
|
IOS5 = -595,
|
|
IOS6 = -594,
|
|
IOS6_1 = -593,
|
|
IOS7 = -592,
|
|
IOS7_1 = -591,
|
|
IOS8 = -590,
|
|
IOS8_1 = -589,
|
|
IOS8_2 = -588,
|
|
IOS8_3 = -587,
|
|
IOS8_4 = -586,
|
|
IOS9 = -585,
|
|
IOS9_1 = -584,
|
|
IOS9_2 = -583,
|
|
IOS9_3 = -582,
|
|
IOS10 = -581,
|
|
IOS10_1 = -580,
|
|
IOS10_2 = -579,
|
|
IOS10_3 = -578,
|
|
IOS11 = -577,
|
|
IOS11_1 = -576,
|
|
IOS11_2 = -575,
|
|
IOS11_3 = -574,
|
|
IOS11_4 = -573,
|
|
IOS12 = -572,
|
|
IOS12_1 = -571,
|
|
AndroidUnknown = -500,
|
|
Android6 = -499,
|
|
Android7 = -498,
|
|
Android8 = -497,
|
|
Android9 = -496,
|
|
UMQ = -400,
|
|
PS3 = -300,
|
|
MacOSUnknown = -102,
|
|
MacOS104 = -101,
|
|
MacOS105 = -100,
|
|
MacOS1058 = -99,
|
|
MacOS106 = -95,
|
|
MacOS1063 = -94,
|
|
MacOS1064_slgu = -93,
|
|
MacOS1067 = -92,
|
|
MacOS107 = -90,
|
|
MacOS108 = -89,
|
|
MacOS109 = -88,
|
|
MacOS1010 = -87,
|
|
MacOS1011 = -86,
|
|
MacOS1012 = -85,
|
|
Macos1013 = -84,
|
|
Macos1014 = -83,
|
|
Macos1015 = -82,
|
|
MacOS1016 = -81,
|
|
MacOS11 = -80,
|
|
MacOS111 = -79,
|
|
MacOS1017 = -78,
|
|
MacOS12 = -77,
|
|
MacOS13 = -76,
|
|
MacOSMax = -1,
|
|
LinuxUnknown = -203,
|
|
Linux22 = -202,
|
|
Linux24 = -201,
|
|
Linux26 = -200,
|
|
Linux32 = -199,
|
|
Linux35 = -198,
|
|
Linux36 = -197,
|
|
Linux310 = -196,
|
|
Linux316 = -195,
|
|
Linux318 = -194,
|
|
Linux3x = -193,
|
|
Linux4x = -192,
|
|
Linux41 = -191,
|
|
Linux44 = -190,
|
|
Linux49 = -189,
|
|
Linux414 = -188,
|
|
Linux419 = -187,
|
|
Linux5x = -186,
|
|
Linux54 = -185,
|
|
Linux6x = -184,
|
|
Linux7x = -183,
|
|
Linux510 = -182,
|
|
LinuxMax = -101,
|
|
WinUnknown = 0,
|
|
Win311 = 1,
|
|
Win95 = 2,
|
|
Win98 = 3,
|
|
WinME = 4,
|
|
WinNT = 5,
|
|
Win2000 = 6,
|
|
WinXP = 7,
|
|
Win2003 = 8,
|
|
WinVista = 9,
|
|
Windows7 = 10,
|
|
Win2008 = 11,
|
|
Win2012 = 12,
|
|
Windows8 = 13,
|
|
Windows81 = 14,
|
|
Win2012R2 = 15,
|
|
Windows10 = 16,
|
|
Win2016 = 17,
|
|
Win2019 = 18,
|
|
Win2022 = 19,
|
|
Win11 = 20,
|
|
WinMAX = 21
|
|
} |