Compare commits

..

11 Commits

Author SHA1 Message Date
JustArchi
017c5eb7ef Fix misc issue with steam gifts in trades 2016-06-20 15:02:26 +02:00
JustArchi
9e575584a8 Bump 2016-06-20 14:41:14 +02:00
JustArchi
19da8c6d11 Try to solve language problem in non-invasive way 2016-06-20 14:40:14 +02:00
JustArchi
3d19a69c60 Let's hope this is the last one 2016-06-20 13:51:17 +02:00
JustArchi
f6a8d16c85 More fixes 2016-06-20 13:45:12 +02:00
JustArchi
f13991c2da Bump... 2016-06-20 13:26:43 +02:00
JustArchi
40a3d6558d GabeN broke more than I thought 2016-06-20 13:26:30 +02:00
JustArchi
fea76a3dda Derp 2016-06-20 13:18:06 +02:00
JustArchi
1087c01a2c And don't you dare to break again 2016-06-20 13:15:35 +02:00
JustArchi
fd49ff5483 Thanks GabeN 2016-06-20 13:09:27 +02:00
JustArchi
0f5d9a665c Bump 2016-06-20 13:01:42 +02:00
6 changed files with 44 additions and 19 deletions

View File

@@ -47,6 +47,8 @@ namespace ArchiSteamFarm {
private readonly SemaphoreSlim SessionSemaphore = new SemaphoreSlim(1);
private readonly WebBrowser WebBrowser;
internal bool Ready { get; private set; }
private ulong SteamID;
private DateTime LastSessionRefreshCheck = DateTime.MinValue;
@@ -67,12 +69,7 @@ namespace ArchiSteamFarm {
}
uint appID;
if (uint.TryParse(hashName.Substring(0, index), out appID)) {
return appID;
}
Logging.LogNullError(nameof(appID));
return 0;
return uint.TryParse(hashName.Substring(0, index), out appID) ? appID : 0;
}
private static Steam.Item.EType GetItemType(string name) {
@@ -117,7 +114,9 @@ namespace ArchiSteamFarm {
WebBrowser = new WebBrowser(bot.BotName);
}
internal bool Init(SteamClient steamClient, string webAPIUserNonce, string parentalPin) {
internal void OnDisconnected() => Ready = false;
internal async Task<bool> Init(SteamClient steamClient, string webAPIUserNonce, string parentalPin) {
if ((steamClient == null) || string.IsNullOrEmpty(webAPIUserNonce)) {
Logging.LogNullError(nameof(steamClient) + " || " + nameof(webAPIUserNonce), Bot.BotName);
return false;
@@ -179,10 +178,12 @@ namespace ArchiSteamFarm {
string steamLoginSecure = authResult["tokensecure"].Value;
WebBrowser.CookieContainer.Add(new Cookie("steamLoginSecure", steamLoginSecure, "/", "." + SteamCommunityHost));
if (!UnlockParentalAccount(parentalPin).Result) {
// Unlock Steam Parental if needed
if (!await UnlockParentalAccount(parentalPin).ConfigureAwait(false)) {
return false;
}
Ready = true;
LastSessionRefreshCheck = DateTime.Now;
return true;
}
@@ -246,7 +247,7 @@ namespace ArchiSteamFarm {
return null;
}
string request = SteamCommunityURL + "/mobileconf/conf?p=" + deviceID + "&a=" + SteamID + "&k=" + WebUtility.UrlEncode(confirmationHash) + "&t=" + time + "&m=android&tag=conf";
string request = SteamCommunityURL + "/mobileconf/conf?l=english&p=" + deviceID + "&a=" + SteamID + "&k=" + WebUtility.UrlEncode(confirmationHash) + "&t=" + time + "&m=android&tag=conf";
return await WebBrowser.UrlGetToHtmlDocumentRetry(request).ConfigureAwait(false);
}
@@ -435,7 +436,7 @@ namespace ArchiSteamFarm {
return null;
}
string request = SteamCommunityURL + "/tradeoffer/" + tradeID;
string request = SteamCommunityURL + "/tradeoffer/" + tradeID + "?l=english";
HtmlDocument htmlDocument = await WebBrowser.UrlGetToHtmlDocumentRetry(request).ConfigureAwait(false);
if (htmlDocument == null) {
@@ -837,7 +838,7 @@ namespace ArchiSteamFarm {
return null;
}
string request = SteamCommunityURL + "/my/badges?p=" + page;
string request = SteamCommunityURL + "/my/badges?l=english&p=" + page;
return await WebBrowser.UrlGetToHtmlDocumentRetry(request).ConfigureAwait(false);
}
@@ -852,7 +853,7 @@ namespace ArchiSteamFarm {
return null;
}
string request = SteamCommunityURL + "/my/gamecards/" + appID;
string request = SteamCommunityURL + "/my/gamecards/" + appID + "?l=english";
return await WebBrowser.UrlGetToHtmlDocumentRetry(request).ConfigureAwait(false);
}

View File

@@ -252,7 +252,7 @@ namespace ArchiSteamFarm {
}
if (acceptedType != Steam.ConfirmationDetails.EType.Unknown) {
if (confirmations.RemoveWhere(confirmation => confirmation.Type != acceptedType) > 0) {
if (confirmations.RemoveWhere(confirmation => (confirmation.Type != acceptedType) && (confirmation.Type != Steam.ConfirmationDetails.EType.Other)) > 0) {
confirmations.TrimExcess();
if (confirmations.Count == 0) {
return;
@@ -306,7 +306,7 @@ namespace ArchiSteamFarm {
return false;
}
if (ArchiWebHandler.Init(SteamClient, callback.Nonce, BotConfig.SteamParentalPIN)) {
if (await ArchiWebHandler.Init(SteamClient, callback.Nonce, BotConfig.SteamParentalPIN).ConfigureAwait(false)) {
return true;
}
@@ -1452,6 +1452,7 @@ namespace ArchiSteamFarm {
return;
}
ArchiWebHandler.OnDisconnected();
Logging.LogGenericInfo("Disconnected from Steam!", BotName);
FirstTradeSent = false;
@@ -1503,6 +1504,14 @@ namespace ArchiSteamFarm {
return;
}
for (byte i = 0; (i < Program.GlobalConfig.HttpTimeout) && !ArchiWebHandler.Ready; i++) {
await Task.Delay(1000).ConfigureAwait(false);
}
if (!ArchiWebHandler.Ready) {
return;
}
bool acceptedSomething = false;
foreach (ulong gid in callback.GuestPasses.Select(guestPass => guestPass["gid"].AsUnsignedLong()).Where(gid => gid != 0)) {
Logging.LogGenericInfo("Accepting gift: " + gid + "...", BotName);
@@ -1698,7 +1707,7 @@ namespace ArchiSteamFarm {
}
}
if (!ArchiWebHandler.Init(SteamClient, callback.WebAPIUserNonce, BotConfig.SteamParentalPIN)) {
if (!await ArchiWebHandler.Init(SteamClient, callback.WebAPIUserNonce, BotConfig.SteamParentalPIN).ConfigureAwait(false)) {
if (!await RefreshSession().ConfigureAwait(false)) {
return;
}

View File

@@ -388,8 +388,18 @@ namespace ArchiSteamFarm {
return null;
}
Logging.LogGenericInfo("Status for " + appID + ": " + progress, Bot.BotName);
return progress.Equals("No card drops remaining");
byte cardsRemaining = 0;
Match match = Regex.Match(progress, @"\d+");
if (match.Success) {
if (!byte.TryParse(match.Value, out cardsRemaining)) {
Logging.LogNullError(nameof(cardsRemaining), Bot.BotName);
return null;
}
}
Logging.LogGenericInfo("Status for " + appID + ": " + cardsRemaining + " cards remaining", Bot.BotName);
return cardsRemaining > 0;
}
private bool FarmMultiple() {

View File

@@ -442,8 +442,10 @@ namespace ArchiSteamFarm.JSON {
}
}
#pragma warning disable 649
[JsonProperty(PropertyName = "html")]
private string HTML;
#pragma warning restore 649
private uint _OtherSteamID3;
private uint OtherSteamID3 {

View File

@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.1.0.2")]
[assembly: AssemblyFileVersion("2.1.0.2")]
[assembly: AssemblyVersion("2.1.0.5")]
[assembly: AssemblyFileVersion("2.1.0.5")]

View File

@@ -80,6 +80,9 @@ namespace ArchiSteamFarm {
// Most web services expect that UserAgent is set, so we declare it globally
HttpClient.DefaultRequestHeaders.UserAgent.ParseAdd(DefaultUserAgent);
// We should always operate in English language, declare it globally
HttpClient.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-US,en;q=0.8,en-GB;q=0.6");
}
internal async Task<bool> UrlHeadRetry(string request, string referer = null) {