Пример #1
0
def landing(request):
    """Customer Care Landing page."""

    # Get a redis client
    redis = None
    try:
        redis = redis_client(name='default')
    except RedisError as e:
        statsd.incr('redis.errror')
        log.error('Redis error: %s' % e)

    contributor_stats = redis and redis.get(settings.CC_TOP_CONTRIB_CACHE_KEY)
    if contributor_stats:
        contributor_stats = json.loads(contributor_stats)
        statsd.incr('customercare.stats.contributors.hit')
    else:
        statsd.incr('customercare.stats.contributors.miss')

    twitter_user = None
    if request.twitter.authed:
        try:
            credentials = request.twitter.api.verify_credentials()
        except (TwythonError, TwythonAuthError):
            # Bad oauth token. Create a new session so user re-auths.
            request.twitter = twitter.Session()
        else:
            twitter_user = credentials['screen_name']

    yesterday = datetime.now() - timedelta(days=1)

    recent_replied_count = _count_answered_tweets(since=yesterday)

    return render(
        request, 'customercare/landing.html', {
            'contributor_stats':
            contributor_stats,
            'canned_responses':
            get_common_replies(request.LANGUAGE_CODE),
            'tweets':
            _get_tweets(locale=request.LANGUAGE_CODE,
                        filter='unanswered',
                        https=request.is_secure()),
            'authed':
            request.user.is_authenticated() and request.twitter.authed,
            'twitter_user':
            twitter_user,
            'filters':
            FILTERS,
            'filter':
            'unanswered',
            'time':
            datetime.now(),
            'goal':
            settings.CC_REPLIES_GOAL,
            'recent_replied_count':
            recent_replied_count
        })
Пример #2
0
def landing(request):
    """Customer Care Landing page."""

    # Get a redis client
    redis = None
    try:
        redis = redis_client(name="default")
    except RedisError as e:
        log.error("Redis error: %s" % e)

    contributor_stats = redis and redis.get(settings.CC_TOP_CONTRIB_CACHE_KEY)
    if contributor_stats:
        contributor_stats = json.loads(contributor_stats)

    twitter_user = None
    if request.twitter.authed:
        try:
            credentials = request.twitter.api.verify_credentials()
        except (TwythonError, TwythonAuthError):
            # Bad oauth token. Create a new session so user re-auths.
            request.twitter = twitter.Session()
        else:
            twitter_user = credentials["screen_name"]

    yesterday = datetime.now() - timedelta(days=1)

    recent_replied_count = _count_answered_tweets(since=yesterday)

    return render(
        request,
        "customercare/landing.html",
        {
            "contributor_stats":
            contributor_stats,
            "canned_responses":
            get_common_replies(request.LANGUAGE_CODE),
            "tweets":
            _get_tweets(locale=request.LANGUAGE_CODE,
                        filter="unanswered",
                        https=request.is_secure()),
            "authed":
            request.user.is_authenticated and request.twitter.authed,
            "twitter_user":
            twitter_user,
            "filters":
            FILTERS,
            "filter":
            "unanswered",
            "time":
            datetime.now(),
            "goal":
            settings.CC_REPLIES_GOAL,
            "recent_replied_count":
            recent_replied_count,
        },
    )