From d13da54dabe548dcdf7a41bb7f4b4ef1f7cdc607 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 26 Jun 2020 11:52:06 +0300 Subject: [PATCH] Fix getting privacy settings (#1866) * Fix getting privacy settings * Cleanup * Misc --- ArchiSteamFarm/ArchiWebHandler.cs | 6 +++--- ArchiSteamFarm/Json/Steam.cs | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ArchiSteamFarm/ArchiWebHandler.cs b/ArchiSteamFarm/ArchiWebHandler.cs index 087d0c2f8..7ee3206a5 100644 --- a/ArchiSteamFarm/ArchiWebHandler.cs +++ b/ArchiSteamFarm/ArchiWebHandler.cs @@ -2626,7 +2626,7 @@ namespace ArchiSteamFarm { return (false, false); } - IElement htmlNode = htmlDocument.SelectSingleNode("//div[@data-component='ProfilePrivacySettings']/@data-privacysettings"); + IElement htmlNode = htmlDocument.SelectSingleNode("//div[@id='profile_edit_config']"); if (htmlNode == null) { Bot.ArchiLogger.LogNullError(nameof(htmlNode)); @@ -2634,7 +2634,7 @@ namespace ArchiSteamFarm { return (false, false); } - string json = htmlNode.GetAttributeValue("data-privacysettings"); + string json = htmlNode.GetAttributeValue("data-profile-edit"); if (string.IsNullOrEmpty(json)) { Bot.ArchiLogger.LogNullError(nameof(json)); @@ -2648,7 +2648,7 @@ namespace ArchiSteamFarm { Steam.UserPrivacy userPrivacy; try { - userPrivacy = JsonConvert.DeserializeObject(json); + userPrivacy = JsonConvert.DeserializeObject(json)?.Privacy; } catch (JsonException e) { Bot.ArchiLogger.LogGenericException(e); diff --git a/ArchiSteamFarm/Json/Steam.cs b/ArchiSteamFarm/Json/Steam.cs index 405b28f4f..d8b09a6dd 100644 --- a/ArchiSteamFarm/Json/Steam.cs +++ b/ArchiSteamFarm/Json/Steam.cs @@ -702,6 +702,15 @@ namespace ArchiSteamFarm.Json { private NewDiscoveryQueueResponse() { } } + [SuppressMessage("ReSharper", "ClassCannotBeInstantiated")] + internal sealed class ProfileEditData { + [JsonProperty(PropertyName = "Privacy", Required = Required.Always)] + internal readonly UserPrivacy Privacy; + + [JsonConstructor] + private ProfileEditData() { } + } + [SuppressMessage("ReSharper", "ClassCannotBeInstantiated")] internal sealed class RedeemWalletResponse : EResultResponse { [JsonProperty(PropertyName = "wallet", Required = Required.DisallowNull)]