Git Product home page Git Product logo

pokestop's Introduction

#pokestop

Find nearby Pokéstops

##Installation

This utility depends on the Python requests library. To install:

sudo pip install requests

##Usage

usage: python pokestop.py [-h] [--latitude LATITUDE] [--longitude LONGITUDE]
                          [--guid GUID] [--min MINIMUM] [--max MAXIMUM]
                          [--order {ASC,DESC}] [--limit LIMIT]
                          [--offset OFFSET] [--SACSID SACSID]
                          [--csrftoken CSRFTOKEN] [--save]

Find nearby Pokéstops

optional arguments:
  -h, --help             show this help message and exit
  --latitude LATITUDE    Coordinate latitude
  --longitude LONGITUDE  Coordinate longitude
  --guid GUID            Pokéstop ID
  --min MINIMUM          Minimum distance (meters)
  --max MAXIMUM          Maximum distance (meters)
  --order {ASC,DESC}     Results order
  --limit LIMIT          Results limit
  --offset OFFSET        Results offset
  --SACSID SACSID        SACSID cookie
  --csrftoken CSRFTOKEN  csrftoken cookie
  --save                 Save cookies to ~/.pokestop

##Schema

Results are returned in JSON. Here is the format for a single Pokéstop entity:

{
    "distance": <distance (meters)>,
    "name": "<name of Pokéstop>",
    "bearing": <bearing from origin to Pokéstop (degrees)>,
    "latitude": <latitude coordinate>,
    "image": "<image of Pokéstop>",
    "guid": "<unique identifier of Pokéstop>",
    "compass": "<compass direction to Pokéstop>",
    "longitude": <longitude coordinate>
}

When several entities are returned, they come back in an array of entities.

##Example

To find the Pokéstops within 20 meters of the center of Times Square in New York City:

python pokestop.py --latitude 40.758903 --longitude -73.985131 --max 20

Ouput:

[
    {
        "distance": 17, 
        "name": "George M. Cohan Statue at Times Square", 
        "bearing": 182, 
        "latitude": 40.758746, 
        "image": "http://www.panoramio.com/photos/small/24779431.jpg", 
        "guid": "f51cc4736b2042549a8a9cf086e50d44.12", 
        "compass": "S", 
        "longitude": -73.985138
    }, 
    {
        "distance": 20, 
        "name": "Francis Patrick Duffy (1871 - 1932)", 
        "bearing": 43, 
        "latitude": 40.759055, 
        "image": "http://www.panoramio.com/photos/small/80872997.jpg", 
        "guid": "9851cb13578d42f6bfa15c5e6f31919a.12", 
        "compass": "NE", 
        "longitude": -73.984988
    }
]

##Setup

If not set up correctly, you may get the following alert:

Log into https://www.ingress.com/intel and copy the following cookies:
  SACSID
  csrftoken

For more information, visit https://github.com/kevinselwyn/pokestop

You need to collect some cookies from https://www.ingress.com/intel to proceed. Follow these steps:

  1. Navigate to https://www.ingress.com/intel
  2. Log in with your Google account
  3. Gather the SACSID and csrftoken cookies

To gather cookies, you will have the greatest success with a cookie viewer plugin for your browser.

After you gather the cookies, you have several options:

  1. Include each on the commandline using the --SACSID and --csrftoken flags (these will have to be included on every run)
  2. Place them in a JSON-formatted file named ~/.pokestop (ex: {"SACSID":"<SACSID cookie>","csrftoken":"<csrftoken cookie>"})
  3. Place them in the pokestop.py file itself in the COOKIES constant

Note: If you choose Option 1 (command-line arguments), you can add the --save flag to save them to a ~/.pokestop file

##API

To start locally:

python api.py --port 8000

You may also deploy to Heroku to set up your own REST API for easy web access to all Pokéstops.

Follow the steps on Heroku's website here to deploy or click this button:

Deploy

API info:

Endpoint Notes
/nearby Find nearby Pokéstops given a lat/lng
/pokestop Get information on a specific Pokéstop given a guid

All call require SACSID and csrftoken (can be gathered by following the instructions in the Setup section above).

/nearby requires latitude and longitude

/pokestop requires guid

Here are all the fields that can be used (same functions/explanations as the Usage section above):

Field
SACSID
csrftoken
guid
latitude
longitude
minimum
maximum
order
limit

Example API call:

curl -X POST -H "Content-Type: application/json" -d '{
    "latitude": "40.758903",
    "longitude": "-73.985131",
    "max": "20",
    "SACSID": "<SACSID cookie>",
    "csrftoken": "<csrftoken cookie>"
}' "http://app-name-123.herokuapp.com/nearby"

This will yield the same output as in the Example section above.

##Disclaimer

These may or may not violate some Terms of Service for Niantic Lab's Ingress and Pokémon GO. Use at your own risk.

pokestop's People

Contributors

kevinselwyn avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.