mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2025-12-20 16:28:38 +00:00
Handle expired sessionIDs for main accounts
This commit is contained in:
@@ -150,6 +150,28 @@ namespace ArchiSteamFarm {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal async Task<bool?> IsLoggedIn() {
|
||||||
|
if (SteamID == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
HtmlDocument htmlDocument = await WebBrowser.UrlGetToHtmlDocument("http://steamcommunity.com/my/profile", SteamCookieDictionary).ConfigureAwait(false);
|
||||||
|
if (htmlDocument == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
HtmlNode htmlNode = htmlDocument.DocumentNode.SelectSingleNode("//span[@id='account_pulldown']");
|
||||||
|
return htmlNode != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal async Task ReconnectIfNeeded() {
|
||||||
|
bool? isLoggedIn = await IsLoggedIn().ConfigureAwait(false);
|
||||||
|
if (isLoggedIn.HasValue && !isLoggedIn.Value) {
|
||||||
|
Logging.LogGenericInfo(Bot.BotName, "Reconnecting because our sessionID expired!");
|
||||||
|
Bot.SteamClient.Disconnect(); // Bot will handle reconnect
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal List<SteamTradeOffer> GetTradeOffers() {
|
internal List<SteamTradeOffer> GetTradeOffers() {
|
||||||
if (ApiKey == null) {
|
if (ApiKey == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -323,15 +323,22 @@ namespace ArchiSteamFarm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool?> ShouldFarm(ulong appID) {
|
private async Task<bool?> ShouldFarm(ulong appID) {
|
||||||
bool? result = null;
|
if (appID == 0) {
|
||||||
HtmlDocument gamePageDocument = await Bot.ArchiWebHandler.GetGameCardsPage(appID).ConfigureAwait(false);
|
return false;
|
||||||
if (gamePageDocument != null) {
|
|
||||||
HtmlNode gamePageNode = gamePageDocument.DocumentNode.SelectSingleNode("//span[@class='progress_info_bold']");
|
|
||||||
if (gamePageNode != null) {
|
|
||||||
result = !gamePageNode.InnerText.Contains("No card drops");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HtmlDocument htmlDocument = await Bot.ArchiWebHandler.GetGameCardsPage(appID).ConfigureAwait(false);
|
||||||
|
if (htmlDocument == null) {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
|
HtmlNode htmlNode = htmlDocument.DocumentNode.SelectSingleNode("//span[@class='progress_info_bold']");
|
||||||
|
if (htmlNode == null) {
|
||||||
|
await Bot.ArchiWebHandler.ReconnectIfNeeded().ConfigureAwait(false);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return !htmlNode.InnerText.Contains("No card drops");
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> Farm(uint appID) {
|
private async Task<bool> Farm(uint appID) {
|
||||||
|
|||||||
Reference in New Issue
Block a user