Skip to content

Commit

Permalink
Refactor (#1587)
Browse files Browse the repository at this point in the history
  • Loading branch information
NamPNQ authored and douglascamata committed Jul 31, 2016
1 parent eac7989 commit a7523a1
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 87 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@
* klingan
* reddivision
* kbinani
* NamPNQ
136 changes: 49 additions & 87 deletions pokemongo_bot/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ def update_web_location(self, cells=[], lat=None, lng=None, alt=None):
status = map_objects.get('status', None)
cells = map_objects['map_cells']

#insert detail info about gym to fort
# insert detail info about gym to fort
for cell in cells:
if 'forts' in cell:
for fort in cell['forts']:
Expand All @@ -159,7 +159,7 @@ def update_web_location(self, cells=[], lat=None, lng=None, alt=None):
)
# alt is unused atm but makes using *location easier
try:
with open(user_web_location,'w') as outfile:
with open(user_web_location, 'w') as outfile:
json.dump({
'lat': lat,
'lng': lng,
Expand Down Expand Up @@ -389,25 +389,13 @@ def get_inventory(self):
def update_inventory(self):
response = self.get_inventory()
self.inventory = list()
if 'responses' in response:
if 'GET_INVENTORY' in response['responses']:
if 'inventory_delta' in response['responses']['GET_INVENTORY']:
if 'inventory_items' in response['responses'][
'GET_INVENTORY']['inventory_delta']:
for item in response['responses']['GET_INVENTORY'][
'inventory_delta']['inventory_items']:
if not 'inventory_item_data' in item:
continue
if not 'item' in item['inventory_item_data']:
continue
if not 'item_id' in item['inventory_item_data'][
'item']:
continue
if not 'count' in item['inventory_item_data'][
'item']:
continue
self.inventory.append(item['inventory_item_data'][
'item'])
inventory_items = response.get('responses', {}).get('GET_INVENTORY', {}).get(
'inventory_delta', {}).get('inventory_items', {})
if inventory_items:
for item in inventory_items:
item_info = item.get('inventory_item_data', {}).get('item')
if {"item_id", "count"}.issubset(set(item_info.keys())):
self.inventory.append(item['inventory_item_data']['item'])

def current_inventory(self):
inventory_req = self.get_inventory()
Expand Down Expand Up @@ -452,7 +440,7 @@ def _item_inventory_count_per_id(self, id, inventory_dict):
item_dict = item.get('inventory_item_data', {}).get('item', {})
item_id = item_dict.get('item_id', False)
item_count = item_dict.get('count', False)
if item_id == int(id) and item_count:
if item_id == int(id) and item_count:
return item_count

def _all_items_inventory_count(self, inventory_dict):
Expand Down Expand Up @@ -547,8 +535,7 @@ def get_pos_by_name(self, location_name):
'[x] Coordinates found in passed in location, '
'not geocoding.'
)
return float(possible_coordinates[0]), \
float(possible_coordinates[1]), float("0.0")
return float(possible_coordinates[0]), float(possible_coordinates[1]), float("0.0")

geolocator = GoogleV3(api_key=self.config.gmapkey)
loc = geolocator.geocode(location_name, timeout=10)
Expand All @@ -567,28 +554,16 @@ def heartbeat(self):

def get_inventory_count(self, what):
response_dict = self.get_inventory()
if 'responses' in response_dict:
if 'GET_INVENTORY' in response_dict['responses']:
if 'inventory_delta' in response_dict['responses'][
'GET_INVENTORY']:
if 'inventory_items' in response_dict['responses'][
'GET_INVENTORY']['inventory_delta']:
pokecount = 0
itemcount = 1
for item in response_dict['responses'][
'GET_INVENTORY']['inventory_delta'][
'inventory_items']:
# print('item {}'.format(item))
if 'inventory_item_data' in item:
if 'pokemon_data' in item[
'inventory_item_data']:
pokecount += 1
if 'item' in item['inventory_item_data']:
if 'count' in item['inventory_item_data'][
'item']:
itemcount = itemcount + \
item['inventory_item_data'][
'item']['count']
inventory_items = response_dict.get('responses', {}).get('GET_INVENTORY', {}).get(
'inventory_delta', {}).get('inventory_items', {})
if inventory_items:
pokecount = 0
itemcount = 1
for item in inventory_items:
if 'inventory_item_data' in item:
if 'pokemon_data' in item['inventory_item_data']:
pokecount += 1
itemcount += item['inventory_item_data'].get('item', {}).get('count', 0)
if 'pokemon' in what:
return pokecount
if 'item' in what:
Expand All @@ -597,47 +572,34 @@ def get_inventory_count(self, what):

def get_player_info(self):
response_dict = self.get_inventory()
if 'responses' in response_dict:
if 'GET_INVENTORY' in response_dict['responses']:
if 'inventory_delta' in response_dict['responses'][
'GET_INVENTORY']:
if 'inventory_items' in response_dict['responses'][
'GET_INVENTORY']['inventory_delta']:
pokecount = 0
itemcount = 1
for item in response_dict['responses'][
'GET_INVENTORY']['inventory_delta'][
'inventory_items']:
#print('item {}'.format(item))
if 'inventory_item_data' in item:
if 'player_stats' in item[
'inventory_item_data']:
playerdata = item['inventory_item_data'][
'player_stats']

nextlvlxp = (
int(playerdata.get('next_level_xp', 0)) -
int(playerdata.get('experience', 0)))

if 'level' in playerdata:
if 'experience' in playerdata:
logger.log(
'Level: {level}'.format(
**playerdata) +
' (Next Level: {} XP)'.format(
nextlvlxp) +
' (Total: {experience} XP)'
''.format(**playerdata), 'cyan')

if 'pokemons_captured' in playerdata:
if 'poke_stop_visits' in playerdata:
logger.log(
'Pokemon Captured: '
'{pokemons_captured}'.format(
**playerdata) +
' | Pokestops Visited: '
'{poke_stop_visits}'.format(
**playerdata), 'cyan')
inventory_items = response_dict.get('responses', {}).get('GET_INVENTORY', {}).get(
'inventory_delta', {}).get('inventory_items', {})
if inventory_items:
pokecount = 0
itemcount = 1
for item in inventory_items:
# print('item {}'.format(item))
playerdata = item.get('inventory_item_data', {}).get('player_stats')
if playerdata:
nextlvlxp = (int(playerdata.get('next_level_xp', 0)) - int(playerdata.get('experience', 0)))

if 'level' in playerdata and 'experience' in playerdata:
logger.log(
'Level: {level}'.format(
**playerdata) +
' (Next Level: {} XP)'.format(
nextlvlxp) +
' (Total: {experience} XP)'
''.format(**playerdata), 'cyan')

if 'pokemons_captured' in playerdata and 'poke_stop_visits' in playerdata:
logger.log(
'Pokemon Captured: '
'{pokemons_captured}'.format(
**playerdata) +
' | Pokestops Visited: '
'{poke_stop_visits}'.format(
**playerdata), 'cyan')

def has_space_for_loot(self):
number_of_things_gained_by_stop = 5
Expand Down

0 comments on commit a7523a1

Please sign in to comment.