Example #1
0
def post_tweet(msg):
	import model

	if len(msg) > 140:
		msg = msg[:139] + '…'
	msg = msg.encode('UTF-8')

	twitter = model.get_twitter()
	if twitter:
		POST_URL = 'https://api.twitter.com/1/statuses/update.json'

		params = get_oauth_params({
			'oauth_token': twitter.token,
			'status': qt(msg)
		}, POST_URL, twitter.secret, '')

		del params['status']

		try:
			res = urlfetch.fetch(url=POST_URL, payload=urlencode({'status': msg}), headers={'Authorization': 'OAuth ' + dict2qs(params)}, method='POST')
			if res.status_code == 200:
				return True
			logging.error('Access Twitter error.\nstatus_code: %s\nheaders: %s\nparams: %s' % (res.status_code, res.headers, params))
		except:
			pass
	return False
Example #2
0
def get_recent_tweets(count=RECENT_TWEETS):
	if TWITTER_CONSUMER_KEY and TWITTER_CONSUMER_SECRET:
		import model
		twitter = model.get_twitter()
		if twitter:
			try:
				res = urlfetch.fetch(url='https://api.twitter.com/1/statuses/user_timeline.json?screen_name=%s&count=%s&include_rts=1' % (twitter.name, RECENT_TWEETS))
				if res.status_code == 200:
					contents = simplejson.loads(res.content)
					if contents:
						from email.utils import parsedate
						from calendar import timegm
						tweets = [{
							'text': content['text'],
						    'timestamp': timegm(parsedate(content['created_at']))
						} for content in contents]
						result = (twitter.name, tweets)
						memcache.set('recent_tweets', result)
						return result
			except:
				pass