Skip to content
This repository has been archived by the owner on Jul 30, 2020. It is now read-only.

Updated to latest POGOProtos (a01a480) #124

Merged
1 commit merged into from Sep 13, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion POGOProtos
Submodule POGOProtos updated 29 files
+195 −49 Networking/Envelopes/RequestEnvelope.g.cs
+225 −28 Networking/Envelopes/ResponseEnvelope.g.cs
+328 −264 Networking/Envelopes/Signature.g.cs
+0 −326 Networking/Envelopes/Unknown6.g.cs
+0 −895 Networking/Envelopes/Unknown6Response.g.cs
+52 −0 Networking/Platform/PlatformRequestType.g.cs
+163 −0 Networking/Platform/Requests/BuyItemAndroidRequest.g.cs
+160 −0 Networking/Platform/Requests/BuyItemPokeCoinsRequest.g.cs
+161 −0 Networking/Platform/Requests/SendEncryptedSignatureRequest.g.cs
+209 −0 Networking/Platform/Responses/BuyItemAndroidResponse.g.cs
+182 −0 Networking/Platform/Responses/BuyItemPokeCoinsResponse.g.cs
+585 −0 Networking/Platform/Responses/GetStoreItemsResponse.g.cs
+164 −0 Networking/Platform/Responses/SendEncryptedSignatureResponse.g.cs
+8 −2 POGOProtos.csproj
+10 −3 Properties/AssemblyInfo.cs
+0 −8 Settings/Master/Item/BattleAttributes.proto
+0 −12 Settings/Master/Item/EggIncubatorAttributes.proto
+0 −9 Settings/Master/Item/ExperienceBoostAttributes.proto
+0 −12 Settings/Master/Item/FoodAttributes.proto
+0 −9 Settings/Master/Item/FortModifierAttributes.proto
+0 −16 Settings/Master/Item/IncenseAttributes.proto
+0 −11 Settings/Master/Item/InventoryUpgradeAttributes.proto
+0 −13 Settings/Master/Item/PokeballAttributes.proto
+0 −9 Settings/Master/Item/PotionAttributes.proto
+0 −8 Settings/Master/Item/ReviveAttributes.proto
+0 −12 Settings/Master/Pokemon/CameraAttributes.proto
+0 −18 Settings/Master/Pokemon/EncounterAttributes.proto
+0 −11 Settings/Master/Pokemon/StatsAttributes.proto
+1 −0 packages.config
121 changes: 61 additions & 60 deletions PoGo.NecroBot.Logic/Common/ApiFailureStrategy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,64 @@ public ApiFailureStrategy(ISession session)
_session = session;
}

public void HandleApiSuccess(RequestEnvelope request, ResponseEnvelope response)
{
if (response.StatusCode == ResponseEnvelope.Types.StatusCode.BadRequest)
{
for (var i = 0; i < request.Requests.Count; i++)
{
if (request.Requests[i].RequestType != RequestType.GetInventory || !response.Returns[i].IsEmpty)
continue;

_session.EventDispatcher.Send(new ErrorEvent
{
Message = _session.Translation.GetTranslation(TranslationString.AccountBanned)
});

_session.EventDispatcher.Send(new WarnEvent
{
Message = _session.Translation.GetTranslation(TranslationString.RequireInputText)
});

Console.ReadKey();
Environment.Exit(0);
}
}

_retryCount = 0;
}

public async Task<ApiOperation> HandleApiFailure(RequestEnvelope request, ResponseEnvelope response)
{
if (_retryCount == 11)
return ApiOperation.Abort;

await Task.Delay(500);
_retryCount++;

if (_retryCount%5 != 0)
return ApiOperation.Retry;

try
{
DoLogin();
}
catch (PtcOfflineException)
{
await Task.Delay(20000);
}
catch (AccessTokenExpiredException)
{
await Task.Delay(2000);
}
catch (Exception ex) when (ex is InvalidResponseException || ex is TaskCanceledException)
{
await Task.Delay(1000);
}

return ApiOperation.Retry;
}

public async Task<ApiOperation> HandleApiFailure()
{
if (_retryCount == 11)
Expand All @@ -32,7 +90,7 @@ public async Task<ApiOperation> HandleApiFailure()
await Task.Delay(500);
_retryCount++;

if (_retryCount % 5 == 0)
if (_retryCount%5 == 0)
{
DoLogin();
}
Expand Down Expand Up @@ -121,7 +179,7 @@ private async void DoLogin()
}
catch (InvalidResponseException)
{
_session.EventDispatcher.Send(new ErrorEvent()
_session.EventDispatcher.Send(new ErrorEvent
{
Message = _session.Translation.GetTranslation(TranslationString.InvalidResponse)
});
Expand All @@ -140,62 +198,5 @@ private async void DoLogin()
});
}
}
public void HandleApiSuccess(RequestEnvelope request, ResponseEnvelope response)
{
if (response.StatusCode == 3)
{
for (int i = 0; i < request.Requests.Count; i++)
{
if (request.Requests[i].RequestType == RequestType.GetInventory && response.Returns[i].IsEmpty)
{
_session.EventDispatcher.Send(new ErrorEvent
{
Message = _session.Translation.GetTranslation(TranslationString.AccountBanned)
});

_session.EventDispatcher.Send(new WarnEvent
{
Message = _session.Translation.GetTranslation(TranslationString.RequireInputText)
});

Console.ReadKey();
Environment.Exit(0);
}
}
}

_retryCount = 0;
}

public async Task<ApiOperation> HandleApiFailure(RequestEnvelope request, ResponseEnvelope response)
{
if (_retryCount == 11)
return ApiOperation.Abort;

await Task.Delay(500);
_retryCount++;

if (_retryCount % 5 == 0)
{
try
{
DoLogin();
}
catch (PtcOfflineException)
{
await Task.Delay(20000);
}
catch (AccessTokenExpiredException)
{
await Task.Delay(2000);
}
catch (Exception ex) when (ex is InvalidResponseException || ex is TaskCanceledException)
{
await Task.Delay(1000);
}
}

return ApiOperation.Retry;
}
}
}
}