def twitter(): user = users.get_current_user() if user is None: redirect("/login?{0}".format( urllib.urlencode(dict(continue_url=request.url)))) twi = TwitterUser.get_by_key_name(user.email()) return dict(is_twitter_added=twi is not None, twitter_id='' if twi is None else twi.twitter_id)
def remove_twitter(): user = users.get_current_user() if user is None: redirect("/login") else: twi = TwitterUser.get_by_key_name(user.email()) if twi is not None: twi.delete() msg = "deleted." else: msg = "not auth." return dict(message=msg)
def add_twitter(): user = users.get_current_user() if user is None: redirect("/login?{0}".format( urllib.urlencode(dict(continue_url=request.url)))) else: session = request.environ.get('beaker.session') auth = session.get("twitter_auth") verifier = request.GET.get('oauth_verifier') if auth is not None and auth.request_token is None: auth = None twi = TwitterUser.get_by_key_name(user.email()) auth_url = '' if twi is None: #first if auth is None or verifier is None: auth = tweepy.OAuthHandler(consumer_key, consumer_secret, request.url) auth_url = auth.get_authorization_url() session["twitter_auth"] = auth session.save() redirect(auth_url) else: try: auth.get_access_token(verifier) except tweepy.TweepError: error('Error! Failed to get access token.') twi = TwitterUser.get_or_insert( user.email(), user=user, last_retweeted_id=0, twitter_access_token=auth.access_token.key, twitter_access_token_secret=auth.access_token.secret, twitter_id=auth.get_username()) session["twitter_auth"] = None session.save() redirect("/twitter")
def review_tweets(): user = users.get_current_user() if user is None: redirect("/login?{0}".format( urllib.urlencode(dict(continue_url=request.url)))) twi = TwitterUser.get_by_key_name(user.email()) if twi is None: return dict(is_twitter_missing=True, message="You haven't link your twitter account.") to_time = request.GET.get('to_time') since_time = request.GET.get('since_time') def_since, def_to = default_range() to_time = def_to if to_time is None else datetime.strptime( to_time, DATETIME_FORMAT) since_time = def_since if since_time is None else datetime.strptime( since_time, DATETIME_FORMAT) tweets = retrive_tweet_data(user, since_time, to_time) if request.is_ajax: return json.dumps([ dict(retweet_time=t.retweet_time.strftime(DATETIME_FORMAT), local_time=(t.retweet_time + CSTTZ).strftime(DATETIME_FORMAT_SHORT), tweet_text=t.tweet_text) for t in tweets ]) return dict(since_time=since_time, twitter_id=twi.twitter_id, tweets=tweets, datefmt=DATETIME_FORMAT, datefmt_short=DATETIME_FORMAT_SHORT, tzdelta=CSTTZ)