Skip to content
This repository was archived by the owner on Jul 12, 2025. It is now read-only.

Commit 407cecd

Browse files
author
memelyfe
committed
[simulation] api request auto-retries. output lines up.
1 parent bda044b commit 407cecd

File tree

1 file changed

+37
-47
lines changed

1 file changed

+37
-47
lines changed

main.py

Lines changed: 37 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -79,49 +79,50 @@ def get_location_coords():
7979
return (COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
8080

8181
def api_req(api_endpoint, access_token, *mehs, **kw):
82-
try:
83-
p_req = pokemon_pb2.RequestEnvelop()
84-
p_req.rpc_id = 1469378659230941192
82+
while True:
83+
try:
84+
p_req = pokemon_pb2.RequestEnvelop()
85+
p_req.rpc_id = 1469378659230941192
8586

86-
p_req.unknown1 = 2
87+
p_req.unknown1 = 2
8788

88-
p_req.latitude, p_req.longitude, p_req.altitude = get_location_coords()
89+
p_req.latitude, p_req.longitude, p_req.altitude = get_location_coords()
8990

90-
p_req.unknown12 = 989
91+
p_req.unknown12 = 989
9192

92-
if 'useauth' not in kw or not kw['useauth']:
93-
p_req.auth.provider = 'ptc'
94-
p_req.auth.token.contents = access_token
95-
p_req.auth.token.unknown13 = 14
96-
else:
97-
p_req.unknown11.unknown71 = kw['useauth'].unknown71
98-
p_req.unknown11.unknown72 = kw['useauth'].unknown72
99-
p_req.unknown11.unknown73 = kw['useauth'].unknown73
93+
if 'useauth' not in kw or not kw['useauth']:
94+
p_req.auth.provider = 'ptc'
95+
p_req.auth.token.contents = access_token
96+
p_req.auth.token.unknown13 = 14
97+
else:
98+
p_req.unknown11.unknown71 = kw['useauth'].unknown71
99+
p_req.unknown11.unknown72 = kw['useauth'].unknown72
100+
p_req.unknown11.unknown73 = kw['useauth'].unknown73
100101

101-
for meh in mehs:
102-
p_req.MergeFrom(meh)
102+
for meh in mehs:
103+
p_req.MergeFrom(meh)
103104

104-
protobuf = p_req.SerializeToString()
105+
protobuf = p_req.SerializeToString()
105106

106-
r = SESSION.post(api_endpoint, data=protobuf, verify=False)
107+
r = SESSION.post(api_endpoint, data=protobuf, verify=False)
107108

108-
p_ret = pokemon_pb2.ResponseEnvelop()
109-
p_ret.ParseFromString(r.content)
109+
p_ret = pokemon_pb2.ResponseEnvelop()
110+
p_ret.ParseFromString(r.content)
110111

111-
if DEBUG:
112-
print("REQUEST:")
113-
print(p_req)
114-
print("Response:")
115-
print(p_ret)
116-
print("\n\n")
117-
118-
print("Sleeping for 2 seconds to get around rate-limit.")
119-
time.sleep(2)
120-
return p_ret
121-
except Exception, e:
122-
if DEBUG:
123-
print(e)
124-
return None
112+
if DEBUG:
113+
print("REQUEST:")
114+
print(p_req)
115+
print("Response:")
116+
print(p_ret)
117+
print("\n\n")
118+
119+
print("[ ] Sleeping for 2 seconds to get around rate-limit.")
120+
time.sleep(2)
121+
return p_ret
122+
except Exception, e:
123+
if DEBUG:
124+
print('[-] API Request Error: %s' % e)
125+
continue
125126

126127
def get_profile(access_token, api, useauth, *reqq):
127128
req = pokemon_pb2.RequestEnvelop()
@@ -229,17 +230,6 @@ def heartbeat(api_endpoint, access_token, response):
229230
heartbeat.ParseFromString(payload)
230231
return heartbeat
231232

232-
def safe_heartbeat(api_endpoint, access_token, response):
233-
h = None
234-
while h is None:
235-
try:
236-
h = heartbeat(api_endpoint, access_token, response)
237-
except:
238-
print('[-] Missed a heartbeat')
239-
time.sleep(1)
240-
continue
241-
return h
242-
243233

244234
def main():
245235
pokemons = json.load(open('pokemon.json'))
@@ -295,13 +285,13 @@ def main():
295285
original_long = FLOAT_LONG
296286
parent = CellId.from_lat_lng(LatLng.from_degrees(FLOAT_LAT, FLOAT_LONG)).parent(15)
297287

298-
h = safe_heartbeat(api_endpoint, access_token, response)
288+
h = heartbeat(api_endpoint, access_token, response)
299289
hs = [h]
300290
seen = set([])
301291
for child in parent.children():
302292
latlng = LatLng.from_point(Cell(child).get_center())
303293
set_location_coords(latlng.lat().degrees, latlng.lng().degrees, 0)
304-
hs.append(safe_heartbeat(api_endpoint, access_token, response))
294+
hs.append(heartbeat(api_endpoint, access_token, response))
305295
set_location_coords(original_lat, original_long, 0)
306296

307297
visible = []

0 commit comments

Comments
 (0)