Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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")
Exemple #4
0
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)