def render(self, context): output = self.nodelist.render(context) items = output.split() tweet = {} tweets = [] html = "" for item in items: tweet = cache.get(item) if tweet: pass else: twitter_client = TwitterClient(CONSUMER_KEY, CONSUMER_SECRET) print item tweet = twitter_client.request('https://api.twitter.com/1.1/statuses/show.json?id={0}'.format(item)) cache.set(item, tweet, TWITTER_TIMEOUT) data = json.loads(tweet) # print data['user']['screen_name'] # print data.user.name # print data.user.url # print data.user.profile_image_url # # print data['text'] # print data.created_at # tweets.append(tweet) # for tweet in tweets: html += """ <div class="tweet" onClick="window.open('http://twitter.com/{2}/status/{4}/')" > <img src="{0}"> <span class="username">{1}</span> <span class="handle" ><a onClick="window.open('http://twitter.com/{2}'); event.preventDefault();" href="https://twitter.com/{2}/" title="users twitter page">@{2}</a></span> <p><span class="text">{3}</span></p> </div> """.format( data['user']['profile_image_url'].encode('utf-8').strip(), data['user']['name'].encode('utf-8').strip(), data['user']['screen_name'].encode('utf-8').strip(), data['text'].encode('utf-8').strip(), data['id'] # "text" ) return html
def render(self, context): output = self.nodelist.render(context) items = output.split() tweet = {} tweets = [] html = "" try: for item in items: tweet = cache.get(item) if tweet: pass else: twitter_client = TwitterClient(CONSUMER_KEY, CONSUMER_SECRET) print item tweet = twitter_client.request( 'https://api.twitter.com/1.1/statuses/show.json?id={0}' .format(item)) cache.set(item, tweet, TWITTER_TIMEOUT) data = json.loads(tweet) html += """ <div class="tweet" onClick="window.open('http://twitter.com/{2}/status/{4}/')" > <img src="{0}"> <span class="username">{1}</span> <span class="handle" ><a onClick="window.open('http://twitter.com/{2}'); event.preventDefault();" href="https://twitter.com/{2}/" title="users twitter page">@{2}</a></span> <p><span class="text">{3}</span></p> </div> """.format( data['user']['profile_image_url'].replace( "http://a0", "https://si0"), data['user']['name'].encode('utf-8').strip(), data['user']['screen_name'].encode('utf-8').strip(), data['text'].encode('utf-8').strip(), data['id']) except: html = "oops.. we failed to get some tweets from the api, but believe us, it's all good. :-)" return html
class TweetNode(template.Node): def __init__(self, nodelist): self.nodelist = nodelist self.twitter_client = TwitterClient(CONSUMER_KEY, CONSUMER_SECRET) def render(self, context): output = self.nodelist.render(context) items = output.split() tweet = {} tweets = [] html = "" try: for item in items: tweet = cache.get(item) if tweet: pass else: print item tweet = self.twitter_client.request('https://api.twitter.com/1.1/statuses/show.json?id={0}'.format(item)) cache.set(item, tweet, TWITTER_TIMEOUT) data = json.loads(tweet) html += """ <div class="tweet" onClick="window.open('http://twitter.com/{2}/status/{4}/')" > <img src="{0}"> <span class="username">{1}</span> <span class="handle" ><a onClick="window.open('http://twitter.com/{2}'); event.preventDefault();" href="https://twitter.com/{2}/" title="users twitter page">@{2}</a></span> <p><span class="text">{3}</span></p> </div> """.format( data['user']['profile_image_url'].replace("http://a0", "https://si0").replace("http://abs", "https://abs"), data['user']['name'].encode('utf-8').strip(), data['user']['screen_name'].encode('utf-8').strip(), data['text'].encode('utf-8').strip(), data['id'] ) except: html = "oops.. we failed to get some tweets from the api, but believe us, it's all good. :-)" return html
def __init__(self, nodelist): self.nodelist = nodelist self.twitter_client = TwitterClient(CONSUMER_KEY, CONSUMER_SECRET)