Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding initial REST Framework; Adding method to get user stats #204

Merged
merged 2 commits into from
Jul 22, 2016
Merged

Adding initial REST Framework; Adding method to get user stats #204

merged 2 commits into from
Jul 22, 2016

Conversation

bstascavage
Copy link
Contributor

Right now there isn't a way for a developer to get information on the bot while the bot is running. Sure, you can check information by logging into the app or debugging, but there is no way to query the bot for various statistics. I added a REST Framework to the bot so that a user can retrieve this information by accessing various endpoints.

Some use cases:

  • Developers trying to gather information/test methods
  • Developers wanting to write other applications that interact with the bot, such as web views or chat commands
  • A way to access the bot without logging in; very useful for people with multiple accounts (or a bot test account)

When the bot is started, it starts to listen on port 5000 for any requests. This runs in parallel to the main bot via a fork. As of this PR, there is only one method (more will be added once the Framework is approved):

/api/player_info - Returns the results of the bot.get_player_info() method

Example:

bstascav@kefka:~/pgoapi# curl -XGET localhost:5000/api/player_info { "Level": 7, "Experience": 26465, "Experience until next level": 1535, "Pokemon Captured": 73, "Pokestops Visited": 34 }

@bstascavage
Copy link
Contributor Author

FYI, as of typing this, your Slack request link isn't sending emails. I am not sure who to contact about that.


if print_stats:
for key in player_stats:
print("[#] -- %s: %s" % (key, player_stats[key]))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would change this to print("[#] -- {}: {}".format(key, player_stats[key])) - to keep consistency

@jtdroste
Copy link
Contributor

I'll look into the slack thing shortly. Thanks!

@bstascavage
Copy link
Contributor Author

@jtdroste Updated the print statement as per your recommendation

@jtdroste jtdroste merged commit 81ea152 into PokemonGoF:dev Jul 22, 2016
@jtdroste
Copy link
Contributor

Thanks @bstascavage! On the slack issue, it seems we're being rate limited due to the amount of invites being requested. I'll try to get you in there soon.

@bstascavage
Copy link
Contributor Author

Thanks @jtdroste! Hopefully it will be soon!

jtdroste added a commit that referenced this pull request Jul 22, 2016
jtdroste added a commit that referenced this pull request Jul 22, 2016
jtdroste added a commit that referenced this pull request Jul 22, 2016
hoanghuynh pushed a commit to hoanghuynh/PokemonGo-Bot that referenced this pull request Sep 28, 2016
* Updated Gym Layout

Gym Layout now contains Icons like the rest of the items (except
Pokeballs)

* Update flags table

* Reformat get_args

* Update flags table

* Reformat get_args

* Add autorefresh flag to README

* Update flags table

* Reformat get_args

* added countdown timer until pokemon disappear

* changed the label so it displays both disappears-at and disappears-in

* changed label format

* Fix multiline string

* decoupled google maps from flask

* removed one more thing

* Cleaned up duplicate and unused imports.

* added some nice autoupdate fixes

* fix DecodeError crash

Completed: 59.5555555556%
[-] looping: step 135 of 225
Exception in thread search_thread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "example.py", line 575, in main
    pokemonsJSON, ignore, only)
  File "example.py", line 600, in process_step
    profile_response))
  File "example.py", line 399, in get_heartbeat
    m5, )
  File "example.py", line 304, in get_profile
    return retrying_api_req(service, api, access_token, req, useauth=useauth)
  File "example.py", line 190, in retrying_api_req
    **kwargs)
  File "example.py", line 228, in api_req
    p_ret.ParseFromString(r.content)
  File "/usr/lib/python2.7/site-packages/google/protobuf/message.py", line 186, in ParseFromString
    self.MergeFromString(serialized)
  File "/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 844, in MergeFromString
    raise message_mod.DecodeError('Unexpected end-group tag.')
DecodeError: Unexpected end-group tag.

* Fix for scanner drift (fixes PokemonGoF#229 and PokemonGoF#231)

1. Quickfix for scanner slowly drifting away from starting location:
  reset location to original at the end of looping steps

2. Also fix updating to the next location feature:
  don't update repeatedly and allow to change only longitude or latitude

* more autoupdate fixes

* Add 'Get Directions' to label

- Add link to google maps directions
- Move index to right of Pokemon name

* ugly hack to keep google flask AND autorefresh functionality

* Added support for Simplified Chinese(zh_cn) pokemon names.

Based on
https://wiki.52poke.com/wiki/%E5%AE%9D%E5%8F%AF%E6%A2%A6%E5%88%97%E8%A1%A8%EF%BC%88%E6%8C%89%E5%85%A8%E5%9B%BD%E5%9B%BE%E9%89%B4%E7%BC%96%E5%8F%B7%EF%BC%89/%E7%AE%80%E5%8D%95%E7%89%88

* Option description update.

* remove marker if duplicate exists

* Fix "AttributeError: lat and lng required" when using coordinates as location (PokemonGoF#241)

Previously, origin_lat and origin_lon was not set, causing an Attribute error when accessing the webpage.

* Fixed typo

Removed unnecessary braces

* added smaller images

* Fixed mobile scaling (PokemonGoF#240)

* Step fix (PokemonGoF#252)

* fixed the pokestop icon


* rebased the poke stop icon

* fixed display of steps and completion, fixed steplimit logic

* Reformat get_args

* Update flags table

* Add autorefresh flag to README

* Fix multiline string
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants