Added reverse_geocode, nearby_places, and geo_id methods.
authorKumar Appaiah <a.kumar@alumni.iitm.ac.in>
Sun, 18 Apr 2010 22:03:52 +0000 (17:03 -0500)
committerJoshua Roesslein <jroesslein@gmail.com>
Sun, 18 Apr 2010 22:04:57 +0000 (17:04 -0500)
doc/api.rst
tests.py
tweepy/api.py

index 76980b68c3f3a8bd7d0f56951884f5e6b4afe944..11a3b20d98acf8913fb01642babaafdbf393781b 100644 (file)
@@ -142,7 +142,7 @@ Status methods
    :rtype: :class:`Status` object
 
 
-.. method:: API.update_status(status, [in_reply_to_status_id], [lat], [long], [source])
+.. method:: API.update_status(status, [in_reply_to_status_id], [lat], [long], [source], [place_id])
 
    Update the authenticated user's status. Statuses that are duplicates
    or too long will be silently ignored.
@@ -152,6 +152,7 @@ Status methods
    :param lat: The location's latitude that this tweet refers to.
    :param long: The location's longitude that this tweet refers to.
    :param source: Source of the update. Only supported by Identi.ca. Twitter ignores this parameter.
+   :param id: Twitter ID of location which is listed in the Tweet if geolocation is enabled for the user.
    :rtype: :class:`Status` object
 
 
@@ -825,4 +826,42 @@ Local Trends Methods
    :param woeid:     * The WOEID of the location to be querying for.
    :rtype: :class:`JSON` object
 
+Geo Methods
+-----------
 
+.. method:: API.reverse_geocode([lat], [long], [accuracy], [granularity], [max_results])
+
+   Given a latitude and longitude, looks for places (cities and
+   neighbourhoods) whose IDs can be specified in a call to
+   :func:`update_status` to appear as the name of the location. This
+   call provides a detailed response about the location in question;
+   the :func:`nearby_places` function should be preferred for getting
+   a list of places nearby without great detail.
+
+   :param lat: The location's latitude.
+   :param long: The location's longitude.
+   :param accuracy: Specify the "region" in which to search, such as a number (then this is a radius in meters, but it can also take a string that is suffixed with ft to specify feet).  If this is not passed in, then it is assumed to be 0m
+   :param granularity: Assumed to be `neighborhood' by default; can also be `city'.
+   :param max_results: A hint as to the maximum number of results to return. This is only a guideline, which may not be adhered to.
+
+.. method:: API.reverse_geocode([lat], [long], [ip], [accuracy], [granularity], [max_results])
+
+   Given a latitude and longitude, looks for nearby places (cities and
+   neighbourhoods) whose IDs can be specified in a call to
+   :func:`update_status` to appear as the name of the location. This
+   call provides a detailed response about the location in question;
+   the :func:`nearby_places` function should be preferred for getting
+   a list of places nearby without great detail.
+
+   :param lat: The location's latitude.
+   :param long: The location's longitude.
+   :param ip: The location's IP address. Twitter will attempt to geolocate using the IP address.
+   :param accuracy: Specify the "region" in which to search, such as a number (then this is a radius in meters, but it can also take a string that is suffixed with ft to specify feet).  If this is not passed in, then it is assumed to be 0m
+   :param granularity: Assumed to be `neighborhood' by default; can also be `city'.
+   :param max_results: A hint as to the maximum number of results to return. This is only a guideline, which may not be adhered to.
+
+.. method:: API.geo_id(id)
+
+   Given *id* of a place, provide more details about that place.
+
+   :param id: Valid Twitter ID of a location.
index f2c735ff8904fb5064b7683ca278d49827fe84c9..75911b40b7a4b4cfb3ae9d74314e7c5a3977165f 100644 (file)
--- a/tests.py
+++ b/tests.py
@@ -266,6 +266,11 @@ class TweepyAPITests(unittest.TestCase):
         self.api.trends_daily()
         self.api.trends_weekly()
 
+    def testgeoapis(self):
+        self.api.geo_id(id='c3f37afa9efcf94b') # Austin, TX, USA
+        self.api.nearby_places(lat=30.267370168467806, long=-97.74261474609375) # Austin, TX, USA
+        self.api.reverse_geocode(lat=30.267370168467806, long=-97.74261474609375) # Austin, TX, USA
+
 """
 class TweepyCursorTests(unittest.TestCase):
 
index 55d7eb591c6a9eb649330dbfaeee60d54aee32aa..c9ba04b89b3b4d4a679a6e16d9b5f5418bbd7266 100644 (file)
@@ -122,7 +122,7 @@ class API(object):
         path = '/statuses/update.json',
         method = 'POST',
         payload_type = 'status',
-        allowed_param = ['status', 'in_reply_to_status_id', 'lat', 'long', 'source'],
+        allowed_param = ['status', 'in_reply_to_status_id', 'lat', 'long', 'source', 'place_id'],
         require_auth = True
     )
 
@@ -661,6 +661,27 @@ class API(object):
         allowed_param = ['date', 'exclude']
     )
 
+    """ geo/reverse_geocode """
+    reverse_geocode = bind_api(
+        path = '/geo/reverse_geocode.json',
+        payload_type = 'json',
+        allowed_param = ['lat', 'long', 'accuracy', 'granularity', 'max_results']
+    )
+
+    """ geo/nearby_places """
+    nearby_places = bind_api(
+        path = '/geo/nearby_places.json',
+        payload_type = 'json',
+        allowed_param = ['lat', 'long', 'ip', 'accuracy', 'granularity', 'max_results']
+    )
+
+    """ geo/id """
+    geo_id = bind_api(
+        path = '/geo/id/{id}.json',
+        payload_type = 'json',
+        allowed_param = ['id']
+    )
+
     """ Internal use only """
     @staticmethod
     def _pack_image(filename, max_size):