From 555027ff90f843b2a382c4f6e298741d3d39754b Mon Sep 17 00:00:00 2001 From: Ryan Hope Date: Sat, 30 Jul 2016 15:35:18 -0400 Subject: [PATCH 1/3] fix where local package is found --- examples/pogo-optimizer/pogo-optimizer-cli.py | 2 +- examples/spiral_poi_search.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/examples/pogo-optimizer/pogo-optimizer-cli.py b/examples/pogo-optimizer/pogo-optimizer-cli.py index 1e78d853..5c5a1035 100644 --- a/examples/pogo-optimizer/pogo-optimizer-cli.py +++ b/examples/pogo-optimizer/pogo-optimizer-cli.py @@ -37,7 +37,7 @@ import getpass # add directory of this file to PATH, so that the package will be found -sys.path.append(os.path.dirname(os.path.realpath(__file__))) +sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../..")) # import Pokemon Go API lib from pgoapi import pgoapi diff --git a/examples/spiral_poi_search.py b/examples/spiral_poi_search.py index bc5b2277..59175d3c 100755 --- a/examples/spiral_poi_search.py +++ b/examples/spiral_poi_search.py @@ -36,6 +36,9 @@ import argparse import pprint +# add directory of this file to PATH, so that the package will be found +sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) + from pgoapi import PGoApi from pgoapi.utilities import f2i, h2f from pgoapi import utilities as util @@ -134,7 +137,7 @@ def main(): position = get_pos_by_name(config.location) if not position: return - + if config.test: return @@ -153,7 +156,7 @@ def main(): # ---------------------- response_dict = api.get_player() - # apparently new dict has binary data in it, so formatting it with this method no longer works, pprint works here but there are other alternatives + # apparently new dict has binary data in it, so formatting it with this method no longer works, pprint works here but there are other alternatives # print('Response dictionary: \n\r{}'.format(json.dumps(response_dict, indent=2))) print('Response dictionary: \n\r{}'.format(pprint.PrettyPrinter(indent=4).pformat(response_dict))) find_poi(api, position[0], position[1]) @@ -168,7 +171,7 @@ def find_poi(api, lat, lng): lng = coord['lng'] api.set_position(lat, lng, 0) - + #get_cellid was buggy -> replaced through get_cell_ids from pokecli #timestamp gets computed a different way: cell_ids = get_cell_ids(lat, lng) From 843027ad7de2ce6bb79acb67fb6bfc79c962c781 Mon Sep 17 00:00:00 2001 From: Ryan Hope Date: Sat, 30 Jul 2016 15:35:30 -0400 Subject: [PATCH 2/3] Revert "Removal of location from this example" This reverts commit 59d63b9587f6724e675e45811884d3479d6eef78. --- examples/pogo-optimizer/pogo-optimizer-cli.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/examples/pogo-optimizer/pogo-optimizer-cli.py b/examples/pogo-optimizer/pogo-optimizer-cli.py index 5c5a1035..b86d19ac 100644 --- a/examples/pogo-optimizer/pogo-optimizer-cli.py +++ b/examples/pogo-optimizer/pogo-optimizer-cli.py @@ -45,11 +45,41 @@ # other stuff from google.protobuf.internal import encoder +from geopy.geocoders import GoogleV3 +from s2sphere import Cell, CellId, LatLng from tabulate import tabulate from collections import defaultdict + log = logging.getLogger(__name__) +def get_pos_by_name(location_name): + geolocator = GoogleV3() + loc = geolocator.geocode(location_name, timeout=10) + if not loc: + return None + + log.info('Your given location: %s', loc.address.encode('utf-8')) + log.info('lat/long/alt: %s %s %s', loc.latitude, loc.longitude, loc.altitude) + + return (loc.latitude, loc.longitude, loc.altitude) + +def get_cell_ids(lat, long, radius = 10): + origin = CellId.from_lat_lng(LatLng.from_degrees(lat, long)).parent(15) + walk = [origin.id()] + right = origin.next() + left = origin.prev() + + # Search around provided radius + for i in range(radius): + walk.append(right.id()) + walk.append(left.id()) + right = right.next() + left = left.prev() + + # Return everything + return sorted(walk) + def encode(cellid): output = [] encoder._VarintEncoder()(output.append, cellid) @@ -71,6 +101,7 @@ def init_config(): required=required("auth_service")) parser.add_argument("-u", "--username", help="Username", required=required("username")) parser.add_argument("-p", "--password", help="Password") + parser.add_argument("-l", "--location", help="Location", required=required("location")) parser.add_argument("-d", "--debug", help="Debug Mode", action='store_true') parser.add_argument("-t", "--test", help="Only parse the specified location", action='store_true') parser.set_defaults(DEBUG=False, TEST=False) @@ -91,6 +122,7 @@ def init_config(): return config + def main(): # log settings # log format @@ -111,12 +143,19 @@ def main(): logging.getLogger("pgoapi").setLevel(logging.DEBUG) logging.getLogger("rpc_api").setLevel(logging.DEBUG) + position = get_pos_by_name(config.location) + if not position: + return + if config.test: return # instantiate pgoapi api = pgoapi.PGoApi() + # provide player position on the earth + api.set_position(*position) + if not api.login(config.auth_service, config.username, config.password): return From bb5e98651d74cd016cd1db6bba544bab10fb2753 Mon Sep 17 00:00:00 2001 From: Ryan Hope Date: Sat, 30 Jul 2016 15:37:37 -0400 Subject: [PATCH 3/3] update pogo-optimizer to use latest api --- examples/pogo-optimizer/pogo-optimizer-cli.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/examples/pogo-optimizer/pogo-optimizer-cli.py b/examples/pogo-optimizer/pogo-optimizer-cli.py index b86d19ac..bca5cea1 100644 --- a/examples/pogo-optimizer/pogo-optimizer-cli.py +++ b/examples/pogo-optimizer/pogo-optimizer-cli.py @@ -161,10 +161,7 @@ def main(): # get inventory call # ---------------------- - api.get_inventory() - - # execute the RPC call - response_dict = api.call() + response_dict = api.get_inventory() approot = os.path.dirname(os.path.realpath(__file__))