예제 #1
0
def account(request):
    """
        Edit account info 
    """

    user = request.user

    if request.POST and request.is_ajax():
        success = False
        errors = {}
        data = None
        type = request.POST.get('form_type', None)

        if type == 'account-info':
            first_name = request.POST.get('first_name', '')
            last_name = request.POST.get('last_name', '')
            anon_email = request.POST.get('anon_checkbox', False) == 'True'
            location = request.POST.get('location', '')
            website = request.POST.get('website', '')
            bio = request.POST.get('bio', '')

            user.first_name = first_name
            user.last_name = last_name
            user.save()

            profile = user.profile
            profile.anon_email = anon_email
            profile.location = location
            profile.website = website
            profile.bio = bio
            profile.save()

            success = "User info updated!"

        elif type == 'pic':
            pic_url = request.POST.get('pic_url')
            pic_url = put_profile_pic(
                pic_url, user.profile)  #download and upload to our S3
            if pic_url:  #no errors/less than 1mb #patlsotw
                user.profile.pic_url = pic_url
                user.profile.save()
                success = "Profile picture changed!"
            else:
                errors['pic'] = ['Oops -- something went wrong.']

        resp = {
            'success': success,
            'errors': errors,
            'type': type,
            'data': data,
        }

        return JSONResponse(resp)

    return _template_values(request,
                            page_title="edit whitelist",
                            header="account info",
                            navbar='nav_account',
                            sub_navbar="subnav_account_info")
예제 #2
0
def whitelist(request):
    """
        Edit whitelist entries 
    """

    whitelist = WhiteListItem.objects.filter(user=request.user)

    return _template_values(request, page_title="edit whitelist", header="whitelist", navbar='nav_account', sub_navbar="subnav_whitelist", whitelist=whitelist)
예제 #3
0
def account(request):
    """
        Edit account info
    """

    user = request.user

    if request.POST and request.is_ajax():
        success = False
        errors = {}
        data = None
        type = request.POST.get('form_type', None)

        if type == 'account-info':
            first_name = request.POST.get('first_name', '')
            last_name = request.POST.get('last_name', '')
            anon_email = request.POST.get('anon_checkbox', False) == 'True'
            location = request.POST.get('location', '')
            website = request.POST.get('website', '')
            bio = request.POST.get('bio', '')

            user.first_name = first_name
            user.last_name = last_name
            user.save()

            profile = user.profile
            profile.anon_email = anon_email
            profile.location = location
            profile.website = website
            profile.bio = bio
            profile.save()

            success = "User info updated!"

        elif type == 'pic':
            pic_url = request.POST.get('pic_url')
            # download and upload to our S3
            pic_url = put_profile_pic(pic_url, user.profile)
            if pic_url:  # no errors/less than 1mb #patlsotw
                user.profile.pic_url = pic_url
                user.profile.save()
                success = "Profile picture changed!"
            else:
                errors['pic'] = ['Oops -- something went wrong.']

        resp = {
            'success': success,
            'errors': errors,
            'type': type,
            'data': data,
        }
        return JSONResponse(resp)

    return _template_values(request,
                            page_title="edit sharelist",
                            header="account info",
                            navbar='nav_account',
                            sub_navbar="subnav_account_info")
예제 #4
0
def mft_results_control(request):
    auth = 0
    loy = 0
    fair = 0
    care = 0
    pure = 0
    user = request.user
    if request.POST:
        a1 = int(request.POST.get("a1")[0])  # auth
        b1 = int(request.POST.get("b1")[0])  # ???
        c1 = int(request.POST.get("c1")[0])  # loy
        d1 = int(request.POST.get("d1")[0])  # care
        e1 = int(request.POST.get("e1")[0])  # fair
        f1 = int(request.POST.get("f1")[0])  # pure
        g1 = int(request.POST.get("g1")[0])  # loy
        q1 = int(request.POST.get("q1")[0])  # loy
        i1 = int(request.POST.get("i1")[0])  # auth
        j1 = int(request.POST.get("j1")[0])  # care
        k1 = int(request.POST.get("k1")[0])  # care
        l1 = int(request.POST.get("l1")[0])  # pure
        m1 = int(request.POST.get("m1")[0])  # auth
        n1 = int(request.POST.get("n1")[0])  # fair
        o1 = int(request.POST.get("o1")[0])  # fair
        p1 = int(request.POST.get("p1")[0])  # pure

        a2 = int(request.POST.get("a2")[0])  # auth
        b2 = int(request.POST.get("b2")[0])  # care
        c2 = int(request.POST.get("c2")[0])  # auth
        d2 = int(request.POST.get("d2")[0])  # pure
        e2 = int(request.POST.get("e2")[0])  # fair
        f2 = int(request.POST.get("f2")[0])  # care
        g2 = int(request.POST.get("g2")[0])  # auth
        q2 = int(request.POST.get("q2")[0])  # loy
        i2 = int(request.POST.get("i2")[0])  # pure
        j2 = int(request.POST.get("j2")[0])  # pure
        k2 = int(request.POST.get("k2")[0])  # fairn
        l2 = int(request.POST.get("l2")[0])  # loy
        m2 = int(request.POST.get("m2")[0])  # fair
        n2 = int(request.POST.get("n2")[0])  # care
        o2 = int(request.POST.get("o2")[0])  # pure
        p2 = int(request.POST.get("p2")[0])  # loy

        auth = float(a1 + i1 + m1 + a2 + c2 + g2) / 6.0
        loy = float(c1 + g1 + q1 + q2 + l2 + p2) / 6.0
        care = float(d1 + j1 + k1 + b2 + f2 + n2) / 6.0
        fair = float(e1 + n1 + o1 + e2 + k2 + m2) / 6.0
        pure = float(f1 + l1 + p1 + d2 + i2 + j2) / 6.0

        m = MoralData(authority=auth,
                      loyalty=loy,
                      care=care,
                      fairness=fair,
                      purity=pure,
                      user=user)
        m.save()

    return _template_values(request, page_title="Moral Questionnaire Results")
예제 #5
0
def home(request):
    if not request.user.is_authenticated():
        return _template_values(request, page_title="home", navbar='nav_home')
    else:
        user = get_object_or_404(User, username=request.user.username)
        userprof = UserProfile.objects.get(user=user)
        confirmed = userprof.confirmed
        if not confirmed:
            return redirect('/consent')
        else:
            return redirect('/live_stream/')
예제 #6
0
def mft_results_control(request):
    auth = 0
    loy = 0
    fair = 0
    care = 0
    pure = 0
    user = request.user
    if request.POST:
        a1 = int(request.POST.get("a1")[0]) # auth
        b1 = int(request.POST.get("b1")[0]) # ???
        c1 = int(request.POST.get("c1")[0]) # loy
        d1 = int(request.POST.get("d1")[0]) # care
        e1 = int(request.POST.get("e1")[0]) # fair
        f1 = int(request.POST.get("f1")[0]) # pure
        g1 = int(request.POST.get("g1")[0]) # loy
        q1 = int(request.POST.get("q1")[0]) # loy
        i1 = int(request.POST.get("i1")[0]) # auth
        j1 = int(request.POST.get("j1")[0]) # care
        k1 = int(request.POST.get("k1")[0]) # care
        l1 = int(request.POST.get("l1")[0]) # pure
        m1 = int(request.POST.get("m1")[0]) # auth
        n1 = int(request.POST.get("n1")[0]) # fair
        o1 = int(request.POST.get("o1")[0]) # fair
        p1 = int(request.POST.get("p1")[0]) # pure 

        a2 = int(request.POST.get("a2")[0]) # auth
        b2 = int(request.POST.get("b2")[0]) # care
        c2 = int(request.POST.get("c2")[0]) # auth
        d2 = int(request.POST.get("d2")[0]) # pure
        e2 = int(request.POST.get("e2")[0]) # fair
        f2 = int(request.POST.get("f2")[0]) # care
        g2 = int(request.POST.get("g2")[0]) # auth
        q2 = int(request.POST.get("q2")[0]) # loy
        i2 = int(request.POST.get("i2")[0]) # pure 
        j2 = int(request.POST.get("j2")[0]) # pure
        k2 = int(request.POST.get("k2")[0]) # fairn
        l2 = int(request.POST.get("l2")[0]) # loy
        m2 = int(request.POST.get("m2")[0]) # fair
        n2 = int(request.POST.get("n2")[0]) # care
        o2 = int(request.POST.get("o2")[0]) # pure
        p2 = int(request.POST.get("p2")[0]) # loy

        auth = float(a1 + i1 + m1 + a2 + c2 + g2) / 6.0
        loy = float(c1 + g1 + q1 + q2 + l2 + p2) / 6.0
        care = float(d1 + j1 + k1 + b2 + f2 + n2) / 6.0
        fair = float(e1 + n1 + o1 + e2 + k2 + m2) / 6.0
        pure = float(f1 + l1 + p1 + d2 + i2 + j2) / 6.0

        m = MoralData(authority=auth, loyalty=loy, care=care, fairness=fair, purity=pure, user=user)
        m.save()


    return _template_values(request,
                            page_title="Moral Questionnaire Results");
예제 #7
0
def home(request):
    if not request.user.is_authenticated():
        return _template_values(request, page_title="home", navbar='nav_home')
    else:
        user = get_object_or_404(User, username=request.user.username)
        userprof = UserProfile.objects.get(user=user)
        confirmed = userprof.confirmed
        if not confirmed:
            return redirect('/consent')
        else:
            return redirect('/live_stream/')
예제 #8
0
def getting_started(request):
    user_whitelist = WhiteListItem.objects.filter(
        user=request.user).values_list('url', flat=True)
    top_whitelists = WhiteListItem.objects.filter(~Q(url__in=user_whitelist)).values(
        'url').annotate(count=Count('url')).order_by('-count')[0:5]
    user_prof = UserProfile.objects.get(user=request.user)
    user_follows = list(
        user_prof.follows.all().values_list('user__username', flat=True))
    user_follows.append(request.user.username)
    top_people = UserProfile.objects.filter(~Q(user__username__in=user_follows)).annotate(
        num_followed=Count('followed_by')).order_by('-num_followed')[0:5]
    return _template_values(request, page_title="getting started", navbar='nav_home', top_whitelists=top_whitelists, top_people=top_people)
예제 #9
0
def live_stream(request):
    
    user = get_object_or_404(User, username=request.user.username)
    userprof = UserProfile.objects.get(user=user)
    confirmed = userprof.confirmed
    if not confirmed:
        return redirect('/consent')

    tot_time, num_history, num_online = _get_stats(user)

    get_dict, query, date = _get_query(request)

    hist, history_stream = live_stream_query_manager(get_dict, user)
    
    
    following_count = user.profile.follows.count()
    follower_count = UserProfile.objects.filter(follows=user.profile).count()


    today = datetime.now() - timedelta(hours=24)
    day_count = hist.filter(start_time__gt=today).values('url', 'title').annotate(num_urls=Count('id')).order_by('-num_urls')[:3]
    day_domains = hist.filter(start_time__gt=today).values('domain').annotate(num_domains=Count('id')).order_by('-num_domains')[:5]
    
    day_chart = {}
    for domain in day_domains:
        day_chart[domain['domain']] = domain['num_domains']
    
    last_week = today - timedelta(days=7)
    week_count = hist.filter(start_time__gt=last_week).values('url', 'title').annotate(num_urls=Count('id')).order_by('-num_urls')[:3]
    week_domains = hist.filter(start_time__gt=last_week).values('domain').annotate(num_domains=Count('id')).order_by('-num_domains')[:5]
    
    week_chart = {}
    for domain in week_domains:
        week_chart[domain['domain']] = domain['num_domains']
    
    
    template_dict = {
        'username': user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        'query' : query,
        'date' : date,
        'history_stream' : history_stream,
        'tot_time' : tot_time,
        'num_history' : num_history,
        'num_online' : num_online,
        'day_articles': day_count,
        'week_articles': week_count,
        'day_chart': json.dumps(day_chart),
        'week_chart': json.dumps(week_chart),
    }

    return _template_values(request, page_title="live stream", navbar="nav_home", sub_navbar=_get_subnav(request), **template_dict)
예제 #10
0
def sync_delicious(request):
    """
        Edit connection (following/followers)
    """

    user = request.user

    template_dict = {
        "connected": False,
        "synced": "You are not connected to Eyebrowse."
    }

    delicious_info = DeliciousInfo.objects.filter(user=user)
    if len(delicious_info) > 0:
        template_dict[
            "synced"] = "Your Delicious account is already connected to Eyebrowse."
        template_dict['connected'] = True
    else:
        if "code" in request.GET:
            code = request.GET.get("code")

            data = urllib.urlencode({
                'client_id': DELICIOUS_CONSUMER_KEY,
                'client_secret': DELICIOUS_CONSUMER_SECRET,
                'grant_type': "code",
                'redirect_uri':
                "http://eyebrowse.csail.mit.edu/accounts/profile/sync_delicious",
                'code': code,
            })

            results = json.loads(
                urllib2.urlopen(
                    'https://avosapi.delicious.com/api/v1/oauth/token',
                    data).read())

            access_token = results["access_token"]

            DeliciousInfo.objects.create(user=user, access_token=access_token)
            template_dict[
                "synced"] = "Your Delicious account is now connected to Eyebrowse!"
            template_dict['connected'] = True
        else:
            return redirect_to(
                request, "https://delicious.com/auth/authorize?client_id=" +
                DELICIOUS_CONSUMER_KEY +
                "&redirect_uri=http://eyebrowse.csail.mit.edu/accounts/profile/sync_delicious"
            )

    return _template_values(request,
                            page_title="Connect Delicious",
                            navbar='nav_account',
                            sub_navbar="subnav_sync_delicious",
                            **template_dict)
예제 #11
0
def getting_started(request):
    user_whitelist = WhiteListItem.objects.filter(
        user=request.user).values_list('url', flat=True)
    top_whitelists = WhiteListItem.objects.filter(~Q(url__in=user_whitelist)).values(
        'url').annotate(count=Count('url')).order_by('-count')[0:5]
    user_prof = UserProfile.objects.get(user=request.user)
    user_follows = list(
        user_prof.follows.all().values_list('user__username', flat=True))
    user_follows.append(request.user.username)
    top_people = UserProfile.objects.filter(~Q(user__username__in=user_follows)).annotate(
        num_followed=Count('followed_by')).order_by('-num_followed')[0:5]
    return _template_values(request, page_title="getting started", navbar='nav_home', top_whitelists=top_whitelists, top_people=top_people)
예제 #12
0
def mutelist(request):
    """
        Edit mutelist entries
    """

    mutelist = MuteList.objects.filter(user=request.user)

    return _template_values(request,
                            page_title="edit mute list",
                            header="mutelist",
                            navbar='nav_account',
                            sub_navbar="subnav_mutelist",
                            mutelist=mutelist)
예제 #13
0
def whitelist(request):
    """
        Edit whitelist entries
    """

    whitelist = WhiteListItem.objects.filter(user=request.user)

    return _template_values(request,
                            page_title="edit sharelist",
                            header="sharelist",
                            navbar='nav_account',
                            sub_navbar="subnav_whitelist",
                            whitelist=whitelist)
예제 #14
0
def mutelist(request):
    """
        Edit mutelist entries
    """

    mutelist = MuteList.objects.filter(user=request.user)

    return _template_values(request,
                            page_title="edit mute list",
                            header="mutelist",
                            navbar='nav_account',
                            sub_navbar="subnav_mutelist",
                            mutelist=mutelist)
예제 #15
0
def sync_delicious(request):
    """
        Edit connection (following/followers)
    """

    user = request.user

    template_dict = {"connected": False,
                     "synced": "You are not connected to Eyebrowse."}

    delicious_info = DeliciousInfo.objects.filter(user=user)
    if len(delicious_info) > 0:
        template_dict[
            "synced"] = "Your Delicious account is already connected to Eyebrowse."
        template_dict['connected'] = True
    else:
        if "code" in request.GET:
            code = request.GET.get("code")

            data = urllib.urlencode(
                {'client_id': DELICIOUS_CONSUMER_KEY,
                 'client_secret': DELICIOUS_CONSUMER_SECRET,
                 'grant_type': "code",
                 'redirect_uri': "http://eyebrowse.csail.mit.edu/accounts/profile/sync_delicious",
                 'code': code,
                 })

            results = json.loads(urllib2.urlopen(
                'https://avosapi.delicious.com/api/v1/oauth/token',
                data).read())

            access_token = results["access_token"]

            DeliciousInfo.objects.create(
                user=user, access_token=access_token)
            template_dict[
                "synced"] = "Your Delicious account is now connected to Eyebrowse!"
            template_dict['connected'] = True
        else:
            return redirect_to(request,
                               "https://delicious.com/auth/authorize?client_id=" +
                               DELICIOUS_CONSUMER_KEY +
                               "&redirect_uri=http://eyebrowse.csail.mit.edu/accounts/profile/sync_delicious")

    return _template_values(request,
                            page_title="Connect Delicious",
                            navbar='nav_account',
                            sub_navbar="subnav_sync_delicious",
                            **template_dict)
예제 #16
0
def fb_share(request):
  user = request.user 
  
  if request.GET:
    url = request.GET.get('url')
    text = request.GET.get('text')

    try:
      fb = FBShareData(user=user, url_shared=url, message=text);
      fb.save()
    except:
      pass

    return _template_values(request, page_title="FB share", 
                            url=url, text=text)
예제 #17
0
def notifications(request):

    user = get_object_or_404(User, username=request.user.username)
    userprof = UserProfile.objects.get(user=user)
    confirmed = userprof.confirmed
    if not confirmed:
        return redirect('/consent')

    empty_search_msg = EMPTY_SEARCH_MSG['notifications']

    # stats
    tot_time, item_count = profile_stat_gen(user)

    fav_data = FavData.objects.get(user=user)

    num_history = EyeHistory.objects.filter(user=user).count()

    is_online = online_user(user=user)

    following_users = user.profile.follows.all()
    following_count = following_users.count()
    follower_count = UserProfile.objects.filter(follows=user.profile).count()

    notifications = notification_renderer(user, empty_search_msg)

    nots = Notification.objects.filter(recipient=user, seen=False)
    for n in nots:
        n.seen = True
        n.save()

    template_dict = {
        "username": user.username,
        "following_count": following_count,
        "follower_count": follower_count,
        "is_online": is_online,
        "num_history": num_history,
        "notifications": notifications,
        "tot_time": tot_time,
        "item_count": item_count,
        "fav_data": fav_data,
    }

    return _template_values(request,
                            page_title="notifications",
                            navbar='notify',
                            sub_navbar="subnav_data",
                            not_count=0,
                            **template_dict)
예제 #18
0
def notifications(request):

    user = get_object_or_404(User, username=request.user.username)
    userprof = UserProfile.objects.get(user=user)
    confirmed = userprof.confirmed
    if not confirmed:
        return redirect('/consent')

    empty_search_msg = EMPTY_SEARCH_MSG['notifications']

    # stats
    tot_time, item_count = profile_stat_gen(user)

    fav_data = FavData.objects.get(user=user)

    num_history = EyeHistory.objects.filter(user=user).count()

    is_online = online_user(user=user)

    following_users = user.profile.follows.all()
    following_count = following_users.count()
    follower_count = UserProfile.objects.filter(follows=user.profile).count()

    notifications = notification_renderer(user, empty_search_msg)

    nots = Notification.objects.filter(recipient=user, seen=False)
    for n in nots:
        n.seen = True
        n.save()

    template_dict = {
        "username": user.username,
        "following_count": following_count,
        "follower_count": follower_count,
        "is_online": is_online,
        "num_history": num_history,
        "notifications": notifications,
        "tot_time": tot_time,
        "item_count": item_count,
        "fav_data": fav_data,
    }

    return _template_values(request,
                            page_title="notifications",
                            navbar='notify',
                            sub_navbar="subnav_data",
                            not_count=0,
                            **template_dict)
예제 #19
0
def edit_tags(request):
    user = request.user
    tags = Tag.objects.filter(user=user)
    tag_dict = {}
    for tag in tags:
        if tag.name in tag_dict:
            tag_dict[tag.name].append(tag)
        else:
            tag_dict[tag.name] = [tag]

    template_dict = {"tags": tag_dict.values()}
    return _template_values(request,
                            page_title="Edit My Tags",
                            navbar='nav_account',
                            sub_navbar="subnav_edit_tags",
                            **template_dict)
예제 #20
0
def edit_tags(request):
    user = request.user
    tags = Tag.objects.filter(user=user, is_private=True)
    tag_dict = {}
    for tag in tags:
        if tag.name in tag_dict:
            tag_dict[tag.name].append(tag)
        else:
            tag_dict[tag.name] = [tag]

    template_dict = {"tags": tag_dict.values()}
    return _template_values(request,
                            page_title="Edit My Tags",
                            navbar='nav_account',
                            sub_navbar="subnav_edit_tags",
                            **template_dict)
예제 #21
0
def dow_viz(request):
    if request.GET.get("date") is None or request.GET.get("date") == "null" or request.GET.get("date") == "":
        return redirect_to(request,
                           "/visualizations/day_of_week/?filter=%s&date=last week&query=%s" %
                           (request.GET.get("filter"),
                            request.GET.get("query", "")))

    template_dict = viz_page(request)
    template_dict['viz'] = 'dow'

    return _template_values(
        request,
        page_title="live stream",
        navbar="nav_home",
        sub_navbar=_get_subnav(request),
        **template_dict)
예제 #22
0
def connections(request):
    """
        Edit connection (following/followers)
    """

    following = request.user.profile.follows.all()
    followers = request.user.profile.followed_by.all()
    rendered_following = connection_table_renderer(following, 'following', following)
    rendered_followers = connection_table_renderer(followers, 'followers', following)

    template_dict = {
        "rendered_followers" : rendered_followers,
        "rendered_following" : rendered_following,
        "header" : connections,
    }

    return _template_values(request, page_title="edit connections", navbar='nav_account', sub_navbar="subnav_connections", **template_dict)
예제 #23
0
def following_data(request, username=None):

    if request.user.username == username:
        username = None

    username, follows, profile_user, empty_search_msg, nav_bar = _profile_info(
        request.user, username, following=True)

    # stats
    tot_time, item_count = profile_stat_gen(profile_user)

    fav_data = FavData.objects.get(user=profile_user)

    num_history = EyeHistory.objects.filter(user=profile_user).count()

    is_online = online_user(user=profile_user)

    following_users = profile_user.profile.follows.all()

    following_count = following_users.count()
    follower_count = UserProfile.objects.filter(
        follows=profile_user.profile).count()

    follow = follow_list(following_users, profile_user, empty_search_msg)

    template_dict = {
        'username': profile_user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        "profile_user": profile_user,
        "empty_search_msg": empty_search_msg,
        "follows": str(follows),
        "is_online": is_online,
        'follow_list': follow,
        "num_history": num_history,
        "tot_time": tot_time,
        "item_count": item_count,
        "fav_data": fav_data,
    }

    return _template_values(request,
                            page_title="following list",
                            navbar=nav_bar,
                            sub_navbar="subnav_data",
                            **template_dict)
예제 #24
0
def following_data(request, username=None):

    if request.user.username == username:
        username = None

    username, follows, profile_user, empty_search_msg, nav_bar = _profile_info(
        request.user, username, following=True)

    # stats
    tot_time, item_count = profile_stat_gen(profile_user)

    fav_data = FavData.objects.get(user=profile_user)

    num_history = EyeHistory.objects.filter(user=profile_user).count()

    is_online = online_user(user=profile_user)

    following_users = profile_user.profile.follows.all()

    following_count = following_users.count()
    follower_count = UserProfile.objects.filter(
        follows=profile_user.profile).count()

    follow = follow_list(following_users, profile_user, empty_search_msg)

    template_dict = {
        'username': profile_user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        "profile_user": profile_user,
        "empty_search_msg": empty_search_msg,
        "follows": str(follows),
        "is_online": is_online,
        'follow_list': follow,
        "num_history": num_history,
        "tot_time": tot_time,
        "item_count": item_count,
        "fav_data": fav_data,
    }

    return _template_values(request,
                            page_title="following list",
                            navbar=nav_bar,
                            sub_navbar="subnav_data",
                            **template_dict)
예제 #25
0
def connections(request):
    """
        Edit connection (following/followers)
    """

    following = request.user.profile.follows.all()
    followers = request.user.profile.followed_by.all()
    rendered_following = connection_table_renderer(following, 'following',
                                                   following)
    rendered_followers = connection_table_renderer(followers, 'followers',
                                                   following)

    template_dict = {
        "rendered_followers": rendered_followers,
        "rendered_following": rendered_following,
        "header": connections,
    }

    return _template_values(request,
                            page_title="edit connections",
                            navbar='nav_account',
                            sub_navbar="subnav_connections",
                            **template_dict)
예제 #26
0
def live_stream(request):

    user = request.user

    get_dict, query, date, sort, filter = _get_query(request)
    hist, history_stream = live_stream_query_manager(get_dict, user)

    if user.is_authenticated():
        following_count = user.profile.follows.count()
        follower_count = UserProfile.objects.filter(
            follows=user.profile).count()
        tot_time, num_history = _get_stats(user, filter=filter)
    else:
        following_count = 0
        follower_count = 0
        tot_time = None
        num_history = None

    template_dict = {
        'username': user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        'query': query,
        'date': date,
        'sort': sort,
        'filter': filter,
        'history_stream': history_stream,
        'tot_time': tot_time,
        'num_history': num_history,
        'num_online': online_user_count(),
    }

    return _template_values(request,
                            page_title="live stream",
                            navbar="nav_home",
                            sub_navbar=_get_subnav(request),
                            **template_dict)
예제 #27
0
def live_stream(request):

    user = request.user

    get_dict, query, date, sort, filter = _get_query(request)
    hist, history_stream = live_stream_query_manager(get_dict, user)

    if user.is_authenticated():
        following_count = user.profile.follows.count()
        follower_count = UserProfile.objects.filter(follows=user.profile).count()
        tot_time, num_history = _get_stats(user, filter=filter)
    else:
        following_count = 0
        follower_count = 0
        tot_time = None
        num_history = None

    template_dict = {
        'username': user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        'query': query,
        'date': date,
        'sort': sort,
        'filter': filter,
        'history_stream': history_stream,
        'tot_time': tot_time,
        'num_history': num_history,
        'num_online': online_user_count(),
    }

    return _template_values(request,
                            page_title="live stream",
                            navbar="nav_home",
                            sub_navbar=_get_subnav(request),
                            **template_dict)
예제 #28
0
def api_docs(request):
    return _template_values(request, page_title="home", navbar='nav_home')
예제 #29
0
def live_stream(request):

    user = get_object_or_404(User, username=request.user.username)
    userprof = UserProfile.objects.get(user=user)
    confirmed = userprof.confirmed
    if not confirmed:
        return redirect('/consent')

    tot_time, num_history, num_online = _get_stats(user)

    get_dict, query, date = _get_query(request)

    hist, history_stream = live_stream_query_manager(get_dict, user)

    following_count = user.profile.follows.count()
    follower_count = UserProfile.objects.filter(follows=user.profile).count()

    today = datetime.now() - timedelta(hours=24)
    day_count = hist.filter(start_time__gt=today).values(
        'url',
        'title').annotate(num_urls=Count('id')).order_by('-num_urls')[:3]
    day_domains = hist.filter(start_time__gt=today).values('domain').annotate(
        num_domains=Count('id')).order_by('-num_domains')[:5]

    day_chart = {}
    for domain in day_domains:
        day_chart[domain['domain']] = domain['num_domains']

    last_week = today - timedelta(days=7)
    week_count = hist.filter(start_time__gt=last_week).values(
        'url',
        'title').annotate(num_urls=Count('id')).order_by('-num_urls')[:3]
    week_domains = hist.filter(
        start_time__gt=last_week).values('domain').annotate(
            num_domains=Count('id')).order_by('-num_domains')[:5]

    week_chart = {}
    for domain in week_domains:
        week_chart[domain['domain']] = domain['num_domains']

    template_dict = {
        'username': user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        'query': query,
        'date': date,
        'history_stream': history_stream,
        'tot_time': tot_time,
        'num_history': num_history,
        'num_online': num_online,
        'day_articles': day_count,
        'week_articles': week_count,
        'day_chart': json.dumps(day_chart),
        'week_chart': json.dumps(week_chart),
    }

    return _template_values(request,
                            page_title="live stream",
                            navbar="nav_home",
                            sub_navbar=_get_subnav(request),
                            **template_dict)
예제 #30
0
                logger.info(e)
                logger.info("Error! Failed to get access token")

        else:
            logger.info("no request_token")
            try:
                redirect_rule = auth.get_authorization_url()
                request.session["request_token"] = auth.request_token
                return redirect_to(request, redirect_rule)
            except tweepy.TweepError, e:
                logger.info(e)
                logger.info("Error! Failed to get request token")

    return _template_values(request,
                            page_title="Connect Twitter",
                            navbar='nav_account',
                            sub_navbar="subnav_sync_twitter",
                            **template_dict)


@login_required
@ajax_request
def connect(request):

    success = False
    errors = {}
    data = None
    req_prof = request.user.profile

    if request.POST and request.is_ajax():
예제 #31
0
def api_docs(request):
    return _template_values(request,
                            page_title="Eyebrowse - API Docs",
                            nav_api='active')
예제 #32
0
def api_docs(request):
    return _template_values(request, page_title="home", navbar='nav_home')
예제 #33
0
def tutorial(request):
    return _template_values(request)
예제 #34
0
def api_docs(request):
    return _template_values(request,
                            page_title="Eyebrowse - API Docs",
                            nav_api='active')
예제 #35
0
def faq(request):
    return _template_values(request,
                            page_title="Eyebrowse - FAQ",
                            nav_faq='active')
예제 #36
0
                logger.info(e)
                logger.info("Error! Failed to get access token")

        else:
            logger.info("no request_token")
            try:
                redirect_rule = auth.get_authorization_url()
                request.session["request_token"] = auth.request_token
                return redirect_to(request, redirect_rule)
            except tweepy.TweepError, e:
                logger.info(e)
                logger.info("Error! Failed to get request token")

    return _template_values(request,
                            page_title="Connect Twitter",
                            navbar='nav_account',
                            sub_navbar="subnav_sync_twitter",
                            **template_dict)


@login_required
@ajax_request
def connect(request):

    success = False
    errors = {}
    data = None
    req_prof = request.user.profile

    if request.POST and request.is_ajax():
예제 #37
0
def about(request):
    return _template_values(request,
                            page_title="Eyebrowse - About",
                            nav_about='active')
예제 #38
0
def about(request):
    return _template_values(request,
                            page_title="Eyebrowse - About",
                            nav_about='active')
예제 #39
0
def faq(request):
    return _template_values(request,
                            page_title="Eyebrowse - FAQ",
                            nav_faq='active')
예제 #40
0
def consent(request):
    return _template_values(request, page_title="consent", navbar='nav_home')
예제 #41
0
def tutorial(request):
    return _template_values(request)
예제 #42
0
def downloads(request):
    return _template_values(request, page_title="downloads", navbar='nav_home')
예제 #43
0
def consent(request):
    return _template_values(request,
                            page_title="consent",
                            navbar='nav_home')
예제 #44
0
def profile_data(request, username=None):

    if request.user.is_authenticated():
        user = get_object_or_404(User, username=request.user.username)
        userprof = UserProfile.objects.get(user=user)
        confirmed = userprof.confirmed
        if not confirmed:
            return redirect('/consent')
    else:
        user = None
        userprof = None
    """
        Own profile page
    """
    username, follows, profile_user, empty_search_msg, nav_bar = _profile_info(
        user, username)

    get_dict, query, date, sort, filter = _get_query(request)

    get_dict["orderBy"] = "end_time"
    get_dict["direction"] = "hl"
    get_dict["filter"] = ""
    get_dict["page"] = request.GET.get("page", 1)
    get_dict["username"] = profile_user.username
    get_dict["sort"] = "time"

    hist, history_stream = live_stream_query_manager(
        get_dict, request.user, empty_search_msg=empty_search_msg)

    # stats
    tot_time, item_count = profile_stat_gen(profile_user)

    fav_data = FavData.objects.get(user=profile_user)

    num_history = EyeHistory.objects.filter(user=profile_user).count()

    is_online = online_user(user=profile_user)

    following_count = profile_user.profile.follows.count()
    follower_count = UserProfile.objects.filter(
        follows=profile_user.profile).count()

    today = datetime.now() - timedelta(hours=24)

    day_count = hist.filter(start_time__gt=today).values(
        'url',
        'title').annotate(num_urls=Sum('total_time')).order_by('-num_urls')[:3]

    day_domains = hist.filter(start_time__gt=today).values('domain').annotate(
        num_domains=Sum('total_time')).order_by('-num_domains')[:5]

    day_chart = {}
    for domain in day_domains:
        day_chart[domain['domain']] = domain['num_domains']

    last_week = today - timedelta(days=7)

    week_count = hist.filter(start_time__gt=last_week).values(
        'url',
        'title').annotate(num_urls=Sum('total_time')).order_by('-num_urls')[:3]

    week_domains = hist.filter(
        start_time__gt=last_week).values('domain').annotate(
            num_domains=Sum('total_time')).order_by('-num_domains')[:5]

    week_chart = {}
    for domain in week_domains:
        week_chart[domain['domain']] = domain['num_domains']

    template_dict = {
        'username': profile_user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        "profile_user": profile_user,
        "history_stream": history_stream,
        "empty_search_msg": empty_search_msg,
        "follows": str(follows),
        "is_online": is_online,
        "num_history": num_history,
        "tot_time": tot_time,
        "item_count": item_count,
        "fav_data": fav_data,
        "query": query,
        "date": date,
        'day_articles': day_count,
        'week_articles': week_count,
        'day_chart': json.dumps(day_chart),
        'week_chart': json.dumps(week_chart),
    }

    return _template_values(request,
                            page_title="profile history",
                            navbar=nav_bar,
                            sub_navbar="subnav_data",
                            **template_dict)
예제 #45
0
def downloads(request):
    return _template_values(request,
                            page_title="downloads",
                            navbar='nav_home')
예제 #46
0
def profile_data(request, username=None):

    if request.user.is_authenticated():
        user = get_object_or_404(User, username=request.user.username)
        userprof = UserProfile.objects.get(user=user)
        confirmed = userprof.confirmed
        if not confirmed:
            return redirect('/consent')
    else:
        user = None
        userprof = None

    """
        Own profile page
    """
    username, follows, profile_user, empty_search_msg, nav_bar = _profile_info(
        user, username)

    get_dict, query, date, sort, filter = _get_query(request)

    get_dict["orderBy"] = "end_time"
    get_dict["direction"] = "hl"
    get_dict["filter"] = ""
    get_dict["page"] = request.GET.get("page", 1)
    get_dict["username"] = profile_user.username
    get_dict["sort"] = "time"

    hist, history_stream = live_stream_query_manager(get_dict, request.user, empty_search_msg=empty_search_msg)

    # stats
    tot_time, item_count = profile_stat_gen(profile_user)

    fav_data = FavData.objects.get(user=profile_user)

    num_history = EyeHistory.objects.filter(user=profile_user).count()

    is_online = online_user(user=profile_user)

    following_count = profile_user.profile.follows.count()
    follower_count = UserProfile.objects.filter(
        follows=profile_user.profile).count()

    today = datetime.now() - timedelta(hours=24)

    day_count = hist.filter(
        start_time__gt=today
    ).values('url', 'title').annotate(
        num_urls=Sum('total_time')
    ).order_by('-num_urls')[:3]

    day_domains = hist.filter(
        start_time__gt=today
    ).values('domain'
             ).annotate(num_domains=Sum('total_time')
                        ).order_by('-num_domains')[:5]

    day_chart = {}
    for domain in day_domains:
        day_chart[domain['domain']] = domain['num_domains']

    last_week = today - timedelta(days=7)

    week_count = hist.filter(
        start_time__gt=last_week
    ).values('url', 'title'
             ).annotate(num_urls=Sum('total_time')
                        ).order_by('-num_urls')[:3]

    week_domains = hist.filter(
        start_time__gt=last_week
    ).values('domain'
             ).annotate(num_domains=Sum('total_time')
                        ).order_by('-num_domains')[:5]

    week_chart = {}
    for domain in week_domains:
        week_chart[domain['domain']] = domain['num_domains']

    template_dict = {
        'username': profile_user.username,
        'following_count': following_count,
        'follower_count': follower_count,
        "profile_user": profile_user,
        "history_stream": history_stream,
        "empty_search_msg": empty_search_msg,
        "follows": str(follows),
        "is_online": is_online,
        "num_history": num_history,
        "tot_time": tot_time,
        "item_count": item_count,
        "fav_data": fav_data,
        "query": query,
        "date": date,
        'day_articles': day_count,
        'week_articles': week_count,
        'day_chart': json.dumps(day_chart),
        'week_chart': json.dumps(week_chart),
    }

    return _template_values(request,
                            page_title="profile history",
                            navbar=nav_bar,
                            sub_navbar="subnav_data",
                            **template_dict)