def get_profile(service, access_token, api, useauth, *reqq): req = pokemon_pb2.RequestEnvelop() req1 = req.requests.add() req1.type = 2 if len(reqq) >= 1: req1.MergeFrom(reqq[0]) req2 = req.requests.add() req2.type = 126 if len(reqq) >= 2: req2.MergeFrom(reqq[1]) req3 = req.requests.add() req3.type = 4 if len(reqq) >= 3: req3.MergeFrom(reqq[2]) req4 = req.requests.add() req4.type = 129 if len(reqq) >= 4: req4.MergeFrom(reqq[3]) req5 = req.requests.add() req5.type = 5 if len(reqq) >= 5: req5.MergeFrom(reqq[4]) return retrying_api_req(service, api, access_token, req, useauth=useauth)
def api_req(api_endpoint, access_token, req): try: p_req = pokemon_pb2.RequestEnvelop() p_req.unknown1 = 2 p_req.rpc_id = 8145806132888207460 p_req.requests.MergeFrom(req) p_req.latitude, p_req.longitude, p_req.altitude = get_location_coords() p_req.unknown12 = 989 p_req.auth.provider = 'ptc' p_req.auth.token.contents = access_token p_req.auth.token.unknown13 = 59 protobuf = p_req.SerializeToString() r = SESSION.post(api_endpoint, data=protobuf, verify=False) p_ret = pokemon_pb2.ResponseEnvelop() p_ret.ParseFromString(r.content) return p_ret except Exception, e: if DEBUG: print(e) return None
def do_request(self, location, *args, **kwargs): (lat, lon) = location p_req = pokemon_pb2.RequestEnvelop() p_req.rpc_id = 1469378659230941192 p_req.unknown1 = 2 (p_req.latitude, p_req.longitude, p_req.altitude) = \ (f2i(lat), f2i(lon), 0) p_req.unknown12 = 989 if 'useauth' not in kwargs or not kwargs['useauth']: p_req.auth.provider = self.access_token.provider p_req.auth.token.contents = self.access_token.value p_req.auth.token.unknown13 = 14 else: p_req.unknown11.unknown71 = kwargs['useauth'].unknown71 p_req.unknown11.unknown72 = kwargs['useauth'].unknown72 p_req.unknown11.unknown73 = kwargs['useauth'].unknown73 for arg in args: p_req.MergeFrom(arg) protobuf = p_req.SerializeToString() url = self.api_endpoint or API_URL r = self.session.post(url, protobuf) p_ret = pokemon_pb2.ResponseEnvelop() p_ret.ParseFromString(r.content) return p_ret
def get_profile(api_endpoint, access_token): req = pokemon_pb2.RequestEnvelop() req1 = req.requests.add() req1.type = 2 return api_req(api_endpoint, access_token, req.requests)
def request_profile(self, location, useauth, *reqq): req = pokemon_pb2.RequestEnvelop() req1 = req.requests.add() req1.type = 2 if len(reqq) >= 1: req1.MergeFrom(reqq[0]) req2 = req.requests.add() req2.type = 126 if len(reqq) >= 2: req2.MergeFrom(reqq[1]) req3 = req.requests.add() req3.type = 4 if len(reqq) >= 3: req3.MergeFrom(reqq[2]) req4 = req.requests.add() req4.type = 129 if len(reqq) >= 4: req4.MergeFrom(reqq[3]) req5 = req.requests.add() req5.type = 5 if len(reqq) >= 5: req5.MergeFrom(reqq[4]) return self.do_request(location, req, useauth=useauth)
def api_req(self, api_endpoint, access_token, *args, **kwargs): p_req = pokemon_pb2.RequestEnvelop() p_req.rpc_id = 1469378659230941192 p_req.unknown1 = 2 (p_req.latitude, p_req.longitude, p_req.altitude) = \ self.location.get_location_coords() p_req.unknown12 = 989 if 'useauth' not in kwargs or not kwargs['useauth']: p_req.auth.provider = self.service p_req.auth.token.contents = access_token p_req.auth.token.unknown13 = 14 else: p_req.unknown11.unknown71 = kwargs['useauth'].unknown71 p_req.unknown11.unknown72 = kwargs['useauth'].unknown72 p_req.unknown11.unknown73 = kwargs['useauth'].unknown73 for arg in args: p_req.MergeFrom(arg) protobuf = p_req.SerializeToString() r = SESSION.post(api_endpoint, data=protobuf, verify=False) p_ret = pokemon_pb2.ResponseEnvelop() p_ret.ParseFromString(r.content) time.sleep(0.51) return p_ret
def api_req(service, api_endpoint, access_token, *mehs, **kw): while True: try: p_req = pokemon_pb2.RequestEnvelop() p_req.rpc_id = 2508056722472460033 p_req.unknown1 = 2 p_req.latitude, p_req.longitude, p_req.altitude = get_location_coords() p_req.unknown12 = 989 if 'useauth' not in kw or not kw['useauth']: p_req.auth.provider = service p_req.auth.token.contents = access_token p_req.auth.token.unknown13 = 14 else: p_req.unknown11.unknown71 = kw['useauth'].unknown71 p_req.unknown11.unknown72 = kw['useauth'].unknown72 p_req.unknown11.unknown73 = kw['useauth'].unknown73 for meh in mehs: p_req.MergeFrom(meh) protobuf = p_req.SerializeToString() r = SESSION.post(api_endpoint, data=protobuf, verify=False) p_ret = pokemon_pb2.ResponseEnvelop() p_ret.ParseFromString(r.content) if DEBUG: print("REQUEST:") print(p_req) print("Response:") print(p_ret) print("\n\n") if DEBUG: print("[ ] Sleeping for 1 second") time.sleep(1) return p_ret except Exception, e: if DEBUG: print(e) print('[-] API request error, retrying') time.sleep(3) continue
def api_req(login_type, api_endpoint, access_token, *mehs, **kw): try: p_req = pokemon_pb2.RequestEnvelop() p_req.rpc_id = 1469378659230941192 p_req.unknown1 = 2 p_req.latitude, p_req.longitude, p_req.altitude = get_location_coords() p_req.unknown12 = 989 if 'useauth' not in kw or not kw['useauth']: print "api_req: login_type", login_type p_req.auth.provider = login_type p_req.auth.token.contents = access_token p_req.auth.token.unknown13 = 14 else: p_req.unknown11.unknown71 = kw['useauth'].unknown71 p_req.unknown11.unknown72 = kw['useauth'].unknown72 p_req.unknown11.unknown73 = kw['useauth'].unknown73 for meh in mehs: p_req.MergeFrom(meh) protobuf = p_req.SerializeToString() r = SESSION.post(api_endpoint, data=protobuf, verify=False) p_ret = pokemon_pb2.ResponseEnvelop() p_ret.ParseFromString(r.content) if DEBUG: print("REQUEST:") print(p_req) print("Response:") print(p_ret) print("\n\n") print("Sleeping for 2 seconds to get around rate-limit.") time.sleep(2) return p_ret except Exception, e: if DEBUG: print(e) return None
def get_api_endpoint(access_token): req = pokemon_pb2.RequestEnvelop() req1 = req.requests.add() req1.type = 2 req2 = req.requests.add() req2.type = 126 req3 = req.requests.add() req3.type = 4 req4 = req.requests.add() req4.type = 129 req5 = req.requests.add() req5.type = 5 req5.message.unknown4 = "4a2e9bc330dae60e7b74fc85b98868ab4700802e" p_ret = api_req(API_URL, access_token, req.requests) try: return ('https://%s/rpc' % p_ret.api_url) except: return None
def api_req(service, api_endpoint, access_token, *args, **kwargs): p_req = pokemon_pb2.RequestEnvelop() p_req.rpc_id = 1469378659230941192 p_req.unknown1 = 2 (p_req.latitude, p_req.longitude, p_req.altitude) = \ get_location_coords() p_req.unknown12 = 989 if 'useauth' not in kwargs or not kwargs['useauth']: p_req.auth.provider = service p_req.auth.token.contents = access_token p_req.auth.token.unknown13 = 14 else: p_req.unknown11.unknown71 = kwargs['useauth'].unknown71 p_req.unknown11.unknown72 = kwargs['useauth'].unknown72 p_req.unknown11.unknown73 = kwargs['useauth'].unknown73 for arg in args: p_req.MergeFrom(arg) protobuf = p_req.SerializeToString() session = local_data.api_session r = session.post(api_endpoint, data=protobuf, verify=False) p_ret = pokemon_pb2.ResponseEnvelop() p_ret.ParseFromString(r.content) if False: # VERBOSE_DEBUG print 'REQUEST:' print p_req print 'Response:' print p_ret print '\n\n' time.sleep(0.51) return p_ret