diff --git a/requirements.txt b/requirements.txt
index c0eed9ba..03fc6311 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,5 +3,5 @@ httplib2==0.9
python-instagram==1.1.3
redis==2.10.3
simplejson==3.6.3
-beaker==1.6.4
-six==1.8.0
+beaker==1.11.0
+six==1.8.0
\ No newline at end of file
diff --git a/sample_app.py b/sample_app.py
index 82cc13a9..88c1d076 100644
--- a/sample_app.py
+++ b/sample_app.py
@@ -21,39 +21,45 @@
unauthenticated_api = client.InstagramAPI(**CONFIG)
+
@hook('before_request')
def setup_request():
request.session = request.environ['beaker.session']
+
def process_tag_update(update):
print(update)
+
reactor = subscriptions.SubscriptionsReactor()
reactor.register_callback(subscriptions.SubscriptionType.TAG, process_tag_update)
+
@route('/')
def home():
try:
- url = unauthenticated_api.get_authorize_url(scope=["likes","comments"])
+ url = unauthenticated_api.get_authorize_url(scope=["likes", "comments"])
return 'Connect with Instagram ' % url
except Exception as e:
print(e)
+
def get_nav():
nav_menu = ("
Python Instagram "
""
- "User Recent Media Calls user_recent_media - Get a list of a user's most recent media "
- "User Media Feed Calls user_media_feed - Get the currently authenticated user's media feed uses pagination "
- "Location Recent Media Calls location_recent_media - Get a list of recent media at a given location, in this case, the Instagram office "
- "Media Search Calls media_search - Get a list of media close to a given latitude and longitude "
- "Popular Media Calls media_popular - Get a list of the overall most popular media items "
- "User Search Calls user_search - Search for users on instagram, by name or username "
- "User Follows Get the followers of @instagram uses pagination "
- "Location Search Calls location_search - Search for a location by lat/lng "
- "Tags Search for tags, view tag info and get media by tag "
+ "User Recent Media Calls user_recent_media - Get a list of a user's most recent media "
+ "User Media Feed Calls user_media_feed - Get the currently authenticated user's media feed uses pagination "
+ "Location Recent Media Calls location_recent_media - Get a list of recent media at a given location, in this case, the Instagram office "
+ "Media Search Calls media_search - Get a list of media close to a given latitude and longitude "
+ "Popular Media Calls media_popular - Get a list of the overall most popular media items "
+ "User Search Calls user_search - Search for users on instagram, by name or username "
+ "User Follows Get the followers of @instagram uses pagination "
+ "Location Search Calls location_search - Search for a location by lat/lng "
+ "Tags Search for tags, view tag info and get media by tag "
" ")
return nav_menu
+
@route('/oauth_callback')
def on_callback():
code = request.GET.get("code")
@@ -69,6 +75,7 @@ def on_callback():
print(e)
return get_nav()
+
@route('/recent')
def on_recent():
content = "User Recent Media "
@@ -81,15 +88,19 @@ def on_recent():
photos = []
for media in recent_media:
photos.append('')
- if(media.type == 'video'):
- photos.append('
' % (media.get_standard_resolution_url()))
+ if (media.type == 'video'):
+ photos.append('
' % (
+ media.get_standard_resolution_url()))
else:
photos.append('
' % (media.get_low_resolution_url()))
- photos.append("
Like Un-Like LikesCount=%s
" % (media.id,media.id,media.like_count))
+ photos.append(
+ " Like Un-Like LikesCount=%s" % (
+ media.id, media.id, media.like_count))
content += ''.join(photos)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/media_like/')
def media_like(id):
@@ -98,6 +109,7 @@ def media_like(id):
api.like_media(media_id=id)
redirect("/recent")
+
@route('/media_unlike/')
def media_unlike(id):
access_token = request.session['access_token']
@@ -105,6 +117,7 @@ def media_unlike(id):
api.unlike_media(media_id=id)
redirect("/recent")
+
@route('/user_media_feed')
def on_user_media_feed():
access_token = request.session['access_token']
@@ -126,7 +139,8 @@ def on_user_media_feed():
content += ''.join(photos)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/location_recent_media')
def location_recent_media():
@@ -143,7 +157,8 @@ def location_recent_media():
content += ''.join(photos)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/media_search')
def media_search():
@@ -153,14 +168,15 @@ def media_search():
return 'Missing Access Token'
try:
api = client.InstagramAPI(access_token=access_token, client_secret=CONFIG['client_secret'])
- media_search = api.media_search(lat="37.7808851",lng="-122.3948632",distance=1000)
+ media_search = api.media_search(lat="37.7808851", lng="-122.3948632", distance=1000)
photos = []
for media in media_search:
photos.append(' ' % media.get_standard_resolution_url())
content += ''.join(photos)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/media_popular')
def media_popular():
@@ -177,7 +193,8 @@ def media_popular():
content += ''.join(photos)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/user_search')
def user_search():
@@ -190,11 +207,12 @@ def user_search():
user_search = api.user_search(q="Instagram")
users = []
for user in user_search:
- users.append(' %s ' % (user.profile_picture,user.username))
+ users.append(' %s ' % (user.profile_picture, user.username))
content += ''.join(users)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/user_follows')
def user_follows():
@@ -208,15 +226,16 @@ def user_follows():
user_follows, next = api.user_follows('25025320')
users = []
for user in user_follows:
- users.append(' %s ' % (user.profile_picture,user.username))
+ users.append(' %s ' % (user.profile_picture, user.username))
while next:
user_follows, next = api.user_follows(with_next_url=next)
for user in user_follows:
- users.append(' %s ' % (user.profile_picture,user.username))
+ users.append(' %s ' % (user.profile_picture, user.username))
content += ''.join(users)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/location_search')
def location_search():
@@ -226,14 +245,16 @@ def location_search():
return 'Missing Access Token'
try:
api = client.InstagramAPI(access_token=access_token, client_secret=CONFIG['client_secret'])
- location_search = api.location_search(lat="37.7808851",lng="-122.3948632",distance=1000)
+ location_search = api.location_search(lat="37.7808851", lng="-122.3948632", distance=1000)
locations = []
for location in location_search:
- locations.append('%s Map ' % (location.name,location.point.latitude,location.point.longitude))
+ locations.append('%s Map ' % (
+ location.name, location.point.latitude, location.point.longitude))
content += ''.join(locations)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/tag_search')
def tag_search():
@@ -251,7 +272,8 @@ def tag_search():
content += ''.join(photos)
except Exception as e:
print(e)
- return "%s %s Remaining API Calls = %s/%s" % (get_nav(),content,api.x_ratelimit_remaining,api.x_ratelimit)
+ return "%s %s Remaining API Calls = %s/%s" % (get_nav(), content, api.x_ratelimit_remaining, api.x_ratelimit)
+
@route('/realtime_callback')
@post('/realtime_callback')
@@ -269,4 +291,5 @@ def on_realtime_callback():
except subscriptions.SubscriptionVerifyError:
print("Signature mismatch")
+
bottle.run(app=app, host='localhost', port=8515, reloader=True)