def getDefaults(): # Allocate for 4 default requests data = [ None, ] * 4 # Create Egg request data[0] = Request_pb2.Request( request_type=RequestType_pb2.GET_HATCHED_EGGS) # Create Inventory Request data[1] = Request_pb2.Request( request_type=RequestType_pb2.GET_INVENTORY, request_message=GetInventoryMessage_pb2.GetInventoryMessage( last_timestamp_ms=0).SerializeToString()) # Create Badge request data[2] = Request_pb2.Request( request_type=RequestType_pb2.CHECK_AWARDED_BADGES) # Create Settings request data[3] = Request_pb2.Request( request_type=RequestType_pb2.DOWNLOAD_SETTINGS, request_message=DownloadSettingsMessage_pb2. DownloadSettingsMessage( hash="4a2e9bc330dae60e7b74fc85b98868ab4700802e" ).SerializeToString()) return data
def catchPokemon(self, pokemon, pokeball=items.POKE_BALL, normalized_reticle_size=1.950, hit_pokemon=True, spin_modifier=0.850, normalized_hit_position=1.0): # Create request payload = [ Request.Request( request_type=RequestType.CATCH_POKEMON, request_message=CatchPokemonMessage.CatchPokemonMessage( encounter_id=pokemon.encounter_id, pokeball=pokeball, normalized_reticle_size=normalized_reticle_size, spawn_point_id=pokemon.spawn_point_id, hit_pokemon=hit_pokemon, spin_modifier=spin_modifier, normalized_hit_position=normalized_hit_position). SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.catch.ParseFromString(res.returns[0]) # Return everything return self._state.catch
def getMapObjects(self, radius=10): # Work out location details cells = self.location.getCells(radius) latitude, longitude, _ = self.getCoordinates() timestamps = [ 0, ] * len(cells) # Create request payload = [ Request_pb2.Request( request_type=RequestType_pb2.GET_MAP_OBJECTS, request_message=GetMapObjectsMessage_pb2.GetMapObjectsMessage( cell_id=cells, since_timestamp_ms=timestamps, latitude=latitude, longitude=longitude).SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.mapObjects.ParseFromString(res.returns[0]) # Return everything return self._state.mapObjects
def createApiEndpoint(self): payload = [] msg = Request_pb2.Request(request_type=RequestType_pb2.GET_PLAYER) payload.append(msg) req = self.wrapInRequest(payload) res = self.request(req, API_URL) if res is None: logging.critical('Servers seem to be busy. Exiting.') raise Exception('Could not connect to servers') return res.api_url
def getProfile(self): # Create profile request payload = [Request.Request(request_type=RequestType.GET_PLAYER)] # Send res = self.wrapAndRequest(payload) # Parse self._state.profile.ParseFromString(res.returns[0]) # Return everything return self._state.profile
def collect_reward(session): profile = session.getProfile() next_collect = profile.player_data.daily_bonus.next_defender_bonus_collect_timestamp_ms next_collect = datetime.fromtimestamp(next_collect / 1000) now = datetime.now() if next_collect > now: sleep_seconds = int((next_collect - now).total_seconds()) sleep_seconds += randint(60, 60 * 17) print 'Reward collect time is {}, sleeping for {} seconds'.format( next_collect, sleep_seconds) time.sleep(sleep_seconds) payload = [ Request.Request( request_type=RequestType.COLLECT_DAILY_DEFENDER_BONUS, ) ] session.wrapAndRequest(payload, defaults=False)
def useXpBoost(self): payload = [ Request.Request( request_type=RequestType.USE_ITEM_XP_BOOST, request_message=UseItemXpBoostMessage.UseItemXpBoostMessage( item_id=items.LUCKY_EGG).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.xpBoost.ParseFromString(res.returns[0]) # Return everything return self._state.xpBoost
def getLevelUp(self, newLevel): payload = [ Request.Request( request_type=RequestType.LEVEL_UP_REWARDS, request_message=LevelUpRewardsMessage.LevelUpRewardsMessage( level=newLevel).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.levelUp.ParseFromString(res.returns[0]) # Return everything return self._state.levelUp
def releasePokemon(self, pokemon): payload = [ Request.Request( request_type=RequestType.RELEASE_POKEMON, request_message=ReleasePokemonMessage.ReleasePokemonMessage( pokemon_id=pokemon.id).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.release.ParseFromString(res.returns[0]) # Return everything return self._state.release
def evolvePokemon(self, pokemon): payload = [ Request.Request( request_type=RequestType.EVOLVE_POKEMON, request_message=EvolvePokemonMessage.EvolvePokemonMessage( pokemon_id=pokemon.id).SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.evolve.ParseFromString(res.returns[0]) # Return everything return self._state.evolve
def setPlayerTeam(self, team): # Create request payload = [ Request_pb2.Request( request_type=RequestType_pb2.SETPLAYERTEAMMESSAGE, request_message=SetPlayerTeamMessage_pb2.SetPlayerTeamMessage( team=team).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.playerTeam.ParseFromString(res.returns[0]) # Return everything return self._state.playerTeam
def nicknamePokemon(self, pokemon, nickname): # Create request payload = [ Request_pb2.Request( request_type=RequestType_pb2.NICKNAME_POKEMON, request_message=NicknamePokemonMessage_pb2. NicknamePokemonMessage(pokemon_id=pokemon.id, nickname=nickname).SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.nickname.ParseFromString(res.returns[0]) # Return everything return self._state.nickname
def upgradePokemon(self, pokemon): # Create request payload = [ Request.Request( request_type=RequestType.UPGRADE_POKEMON, request_message=UpgradePokemonMessage.UpgradePokemonMessage( pokemon_id=pokemon.id).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.upgradePokemon.ParseFromString(res.returns[0]) # Return everything return self._state.upgradePokemon
def setEgg(self, item, pokemon): # Create request payload = [ Request.Request(request_type=RequestType.USE_ITEM_EGG_INCUBATOR, request_message=UseItemEggIncubatorMessage. UseItemEggIncubatorMessage( item_id=item.id, pokemon_id=pokemon.id).SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.incubator.ParseFromString(res.returns[0]) # Return everything return self._state.incubator
def recycleItem(self, item_id, count): # Create request payload = [ Request_pb2.Request( request_type=RequestType_pb2.RECYCLE_INVENTORY_ITEM, request_message=RecycleInventoryItemMessage_pb2. RecycleInventoryItemMessage(item_id=item_id, count=count).SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.recycle.ParseFromString(res.returns[0]) # Return everything return self._state.recycle
def useItemRevive(self, item_id, pokemon): # Create request payload = [ Request_pb2.Request( request_type=RequestType_pb2.USEITEMREVIVEMESSAGE, request_message=UseItemReviveMessage_pb2.UseItemReviveMessage( item_id=item_id, pokemon_id=pokemon.id).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.itemRevive.ParseFromString(res.returns[0]) # Return everything return self._state.itemRevive
def useItemCapture(self, item_id, pokemon): # Create request payload = [ Request.Request( request_type=RequestType.USE_ITEM_CAPTURE, request_message=UseItemCaptureMessage.UseItemCaptureMessage( item_id=item_id, encounter_id=pokemon.encounter_id).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.itemCapture.ParseFromString(res.returns[0]) # Return everything return self._state.itemCapture
def setFavoritePokemon(self, pokemon, is_favorite): # Create Request payload = [ Request.Request(request_type=RequestType.SET_FAVORITE_POKEMON, request_message=SetFavoritePokemonMessage. SetFavoritePokemonMessage( pokemon_id=pokemon.id, is_favorite=is_favorite).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.favoritePokemon.ParseFromString(res.returns[0]) # Return Everything return self._state.favoritePokemon
def useItemPotion(self, item_id, pokemon): # Create Request payload = [ Request.Request( request_type=RequestType.USE_ITEM_POTION, request_message=UseItemPotionMessage.UseItemPotionMessage( item_id=item_id, pokemon_id=pokemon.id).SerializeToString()) ] # Send res = self.wrapAndRequest(payload, defaults=False) # Parse self._state.itemPotion.ParseFromString(res.returns[0]) # Return everything return self._state.itemPotion
def getFortDetails(self, fort): # Create request payload = [Request_pb2.Request( request_type=RequestType_pb2.FORT_DETAILS, request_message=FortDetailsMessage_pb2.FortDetailsMessage( fort_id=fort.id, latitude=fort.latitude, longitude=fort.longitude, ).SerializeToString() )] # Send res = self.wrapAndRequest(payload) # Parse self._state.fortDetails.ParseFromString(res.returns[0]) # Return everything return self._state.fortDetails
def encounterPokemon(self, pokemon): # Create request payload = [ Request.Request(request_type=RequestType.ENCOUNTER, request_message=EncounterMessage.EncounterMessage( encounter_id=pokemon.encounter_id, spawn_point_id=pokemon.spawn_point_id, player_latitude=self.location.latitude, player_longitude=self.location.longitude). SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.encounter.ParseFromString(res.returns[0]) # Return everything return self._state.encounter
def getFortSearch(self, fort): # Create request payload = [ Request_pb2.Request( request_type=RequestType_pb2.FORT_SEARCH, request_message=FortSearchMessage_pb2.FortSearchMessage( fort_id=fort.id, player_latitude=self.location.latitude, player_longitude=self.location.longitude, fort_latitude=fort.latitude, fort_longitude=fort.longitude).SerializeToString()) ] # Send res = self.wrapAndRequest(payload) # Parse self._state.fortSearch.ParseFromString(res.returns[0]) # Return everything return self._state.fortSearch