Skip to content

Instantly share code, notes, and snippets.

@maracuja
Created January 28, 2015 16:04
Show Gist options
  • Save maracuja/939872db4c569dad0f38 to your computer and use it in GitHub Desktop.
Save maracuja/939872db4c569dad0f38 to your computer and use it in GitHub Desktop.
My super amazing tweet fetching script.
from django.db import models
from django.contrib import admin
class Tweet(models.Model):
text = models.CharField(max_length=140)
created_at = models.DateTimeField()
tweet_id = models.BigIntegerField()
visible = models.BooleanField(default=True)
ITEMS_PER_PAGE = 10
def __unicode__(self):
return "%s - %s" % (self.created_at, self.text)
class Meta:
ordering = ["-created_at"]
class TweetAdmin(admin.ModelAdmin):
list_display = ('text', 'created_at', 'visible',)
admin.site.register(Tweet, TweetAdmin)
# TWITTER CREDENTIALS
TWITTER_CONSUMER_KEY = ''
TWITTER_CONSUMER_SECRET = ''
TWITTER_ACCESS_TOKEN = ''
TWITTER_ACCESS_TOKEN_SECRET = ''
import oauth2 as oauth
import simplejson
import time
from django.shortcuts import render_to_response
from django.conf import settings
from django.core import serializers
from models import Tweet
def import_tweets(request):
consumer = oauth.Consumer(settings.TWITTER_CONSUMER_KEY, settings.TWITTER_CONSUMER_SECRET)
token = oauth.Token(settings.TWITTER_ACCESS_TOKEN, settings.TWITTER_ACCESS_TOKEN_SECRET)
client = oauth.Client(consumer, token)
# GET YOUR PROFILE
response, content = client.request('https://api.twitter.com/1.1/statuses/user_timeline.json', 'GET')
tweets = []
if response.status == 200:
tweets = simplejson.loads(content)
for tweet in tweets:
if Tweet.objects.filter(tweet_id=long(tweet['id'])).count() < 1:
db_tweet = Tweet()
db_tweet.text = tweet['text']
db_tweet.created_at = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(tweet['created_at'],'%a %b %d %H:%M:%S +0000 %Y'))
db_tweet.tweet_id = tweet['id']
db_tweet.save()
# put the logging stuff here
return render_to_response('templates/import_tweets.html', locals())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment