Created
September 26, 2012 06:48
-
-
Save timmyomahony/3786471 to your computer and use it in GitHub Desktop.
Template tag to grab latest Twitter status (with tweepy)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import tweepy | |
import inspect | |
import re | |
from django.conf import settings | |
from django import template | |
from django.utils.safestring import mark_safe | |
register = template.Library() | |
class LatestStatus(template.Node): | |
def __init__(self, var): | |
self.var = var | |
def render(self, context): | |
auth = tweepy.OAuthHandler(settings.TWITTER_CONSUMER_KEY, settings.TWITTER_CONSUMER_SECRET) | |
auth.set_access_token(settings.TWITTER_ACCESS_KEY, settings.TWITTER_ACCESS_SECRET) | |
api = tweepy.API(auth) | |
context[self.var] = api.user_timeline()[0] | |
return '' | |
def latest_status(parser, token): | |
try: | |
bits = token.split_contents() | |
except ValueError: | |
raise template.TemplateSyntaxError("%r tag requires arguments" % bits[0]) | |
if bits[1] != 'as': | |
raise TemplateSyntaxError("%r tag's second argument must be 'as'" % bits[0]) | |
if len(bits) != 3: | |
raise TemplateSyntaxError("%r tag's requires exactly 2 arguments" % bits[0]) | |
return LatestStatus(bits[2]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment