From 2127bef8d7464f1c7fcd0b61dc104f090139e4ec Mon Sep 17 00:00:00 2001 From: Douglas Camata Date: Tue, 9 Aug 2016 23:56:29 +0200 Subject: [PATCH] changes to improve event system based on new web ui devs requests --- pokemongo_bot/__init__.py | 25 +++++++++++++++---- .../cell_workers/pokemon_catch_worker.py | 18 +++++++++++-- pokemongo_bot/socketio_server/app.py | 6 ++--- pokemongo_bot/step_walker.py | 11 ++++++++ pokemongo_bot/websocket_remote_control.py | 9 +++++-- 5 files changed, 57 insertions(+), 12 deletions(-) diff --git a/pokemongo_bot/__init__.py b/pokemongo_bot/__init__.py index 133bb4631e..7e9e3eaf89 100644 --- a/pokemongo_bot/__init__.py +++ b/pokemongo_bot/__init__.py @@ -234,6 +234,10 @@ def _register_events(self): 'cp', 'iv', 'iv_display', + 'encounter_id', + 'latitude', + 'longitude', + 'pokemon_id' ) ) self.event_manager.register_event('no_pokeballs') @@ -268,7 +272,13 @@ def _register_events(self): ) self.event_manager.register_event( 'pokemon_vanished', - parameters=('pokemon',) + parameters=( + 'pokemon', + 'encounter_id', + 'latitude', + 'longitude', + 'pokemon_id' + ) ) self.event_manager.register_event('pokemon_not_in_range') self.event_manager.register_event('pokemon_inventory_full') @@ -276,7 +286,11 @@ def _register_events(self): 'pokemon_caught', parameters=( 'pokemon', - 'cp', 'iv', 'iv_display', 'exp' + 'cp', 'iv', 'iv_display', 'exp', + 'encounter_id', + 'latitude', + 'longitude', + 'pokemon_id' ) ) self.event_manager.register_event( @@ -988,9 +1002,10 @@ def heartbeat(self): pass def update_web_location_worker(self): - while True: - self.web_update_queue.get() - self.update_web_location() + pass + # while True: + # self.web_update_queue.get() + # self.update_web_location() def get_inventory_count(self, what): response_dict = self.get_inventory() diff --git a/pokemongo_bot/cell_workers/pokemon_catch_worker.py b/pokemongo_bot/cell_workers/pokemon_catch_worker.py index d551a68632..345fcabc7e 100644 --- a/pokemongo_bot/cell_workers/pokemon_catch_worker.py +++ b/pokemongo_bot/cell_workers/pokemon_catch_worker.py @@ -98,6 +98,10 @@ def work(self, response_dict=None): 'cp': pokemon.cp, 'iv': pokemon.iv, 'iv_display': pokemon.iv_display, + 'encounter_id': self.pokemon['encounter_id'], + 'latitude': self.pokemon['latitude'], + 'longitude': self.pokemon['longitude'], + 'pokemon_id': pokemon.num } ) @@ -370,7 +374,13 @@ def _do_catch(self, pokemon, encounter_id, catch_rate_by_ball, is_vip=False): self.emit_event( 'pokemon_vanished', formatted='{pokemon} vanished!', - data={'pokemon': pokemon.name} + data={ + 'pokemon': pokemon.name, + 'encounter_id': self.pokemon['encounter_id'], + 'latitude': self.pokemon['latitude'], + 'longitude': self.pokemon['longitude'], + 'pokemon_id': pokemon.num + } ) if self._pct(catch_rate_by_ball[current_ball]) == 100: self.bot.softban = True @@ -386,7 +396,11 @@ def _do_catch(self, pokemon, encounter_id, catch_rate_by_ball, is_vip=False): 'cp': pokemon.cp, 'iv': pokemon.iv, 'iv_display': pokemon.iv_display, - 'exp': sum(response_dict['responses']['CATCH_POKEMON']['capture_award']['xp']) + 'exp': sum(response_dict['responses']['CATCH_POKEMON']['capture_award']['xp']), + 'encounter_id': self.pokemon['encounter_id'], + 'latitude': self.pokemon['latitude'], + 'longitude': self.pokemon['longitude'], + 'pokemon_id': pokemon.num } ) diff --git a/pokemongo_bot/socketio_server/app.py b/pokemongo_bot/socketio_server/app.py index 09c237f910..7f3c5040d2 100644 --- a/pokemongo_bot/socketio_server/app.py +++ b/pokemongo_bot/socketio_server/app.py @@ -26,7 +26,7 @@ def request_reply(sid, response): @sio.on('bot:broadcast') def bot_broadcast(sid, env): - event = env.pop('event') - account = env.pop('account') + event = env['event'] + account = env['account'] event_name = "{}:{}".format(event, account) - sio.emit(event_name, data=env['data']) + sio.emit(event_name, data=env) diff --git a/pokemongo_bot/step_walker.py b/pokemongo_bot/step_walker.py index f6c2cbfe96..7727dc6a0c 100644 --- a/pokemongo_bot/step_walker.py +++ b/pokemongo_bot/step_walker.py @@ -55,6 +55,17 @@ def step(self): cLng = self.initLng + scaledDLng + random_lat_long_delta() self.api.set_position(cLat, cLng, 0) + self.bot.event_manager.emit( + 'position_update', + sender=self, + level='debug', + data={ + 'current_position': (cLat, cLng), + 'last_position': (self.initLat, self.initLng), + 'distance': '', + 'distance_unit': '' + } + ) self.bot.heartbeat() sleep(1) # sleep one second plus a random delta diff --git a/pokemongo_bot/websocket_remote_control.py b/pokemongo_bot/websocket_remote_control.py index c4e15362b6..14645e6572 100644 --- a/pokemongo_bot/websocket_remote_control.py +++ b/pokemongo_bot/websocket_remote_control.py @@ -42,11 +42,16 @@ def on_remote_command(self, command): command_handler() def get_player_info(self): - player_info = self.bot.get_inventory()['responses']['GET_INVENTORY'] + request = self.api.create_request() + request.get_player() + request.get_inventory() + response_dict = request.call() + inventory = response_dict['responses']['GET_INVENTORY'] + player_info = response_dict['responses']['GET_PLAYER'] self.sio.emit( 'bot:send_reply', { - 'result': player_info, + 'result': {'inventory': inventory, 'player': player_info}, 'command': 'get_player_info', 'account': self.bot.config.username }