Exemplo n.º 1
0
def rating_get(request):
    user = request.user
    success = False
    errors = {}
    data = None
    url = request.GET.get("url")
    domain = url_domain(url)
    errors["rating"] = []
    data = {"url":url,"domain":domain}

    domain,_ = Domain.objects.get_or_create(url=domain)
    page,_ = Page.objects.get_or_create(url=url,domain=domain)
    try:
        rating = Ratings.objects.get(user=user,page=page)
        data["score"] = rating.score
        data["domain_score"] = 0
        success = True
    except Ratings.DoesNotExist:
        errors["rating"].append("Rating does not exist")

    return {
        "success": success,
        "errors": errors,
        "data": data
    }
Exemplo n.º 2
0
def active(request):
    url = request.GET.get('url', '')

    domain = url_domain(url)

    timestamp = timezone.now() - datetime.timedelta(days=7)

    used_users = []
    active_users = []
    active_dusers = []

    eyehists = EyeHistory.objects.filter(
        (Q(url=url) | Q(domain=domain)) & Q(start_time__gt=timestamp)
        & ~Q(user_id=request.user.id)).order_by('-end_time').select_related()

    for eyehist in eyehists:
        if len(used_users) >= 6:
            break
        user = eyehist.user
        if user not in used_users:
            old_level = 3
            if eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(minutes=5)):
                old_level = 0
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=1)):
                old_level = 1
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=24)):
                old_level = 2

            if url == eyehist.url:
                active_users.append({
                    'username':
                    user.username,
                    'pic_url':
                    gravatar_for_user(user),
                    'resourceURI':
                    '%s/users/%s' % (BASE_URL, user.username),
                    'old_level':
                    old_level,
                    'time_ago':
                    humanize_time(timezone.now() - eyehist.end_time)
                })
            else:
                active_dusers.append({
                    'username':
                    user.username,
                    'pic_url':
                    gravatar_for_user(user),
                    'resourceURI':
                    '%s/users/%s' % (BASE_URL, user.username),
                    'old_level':
                    old_level,
                    'time_ago':
                    humanize_time(timezone.now() - eyehist.end_time)
                })
            used_users.append(user)

    return {'result': {'page': active_users, 'domain': active_dusers}}
Exemplo n.º 3
0
def stats(request):
    url = request.GET.get('url', '')
    my_user = get_object_or_404(User, username=request.user.username)

    my_visits = EyeHistory.objects.filter(user=my_user, url=url)
    my_count, my_time = get_stats(my_visits)

    total_visits = EyeHistory.objects.filter(url=url)
    total_count, total_time = get_stats(total_visits)

    domain = url_domain(url)
    my_dvisits = EyeHistory.objects.filter(user=my_user, domain=domain)
    my_dcount, my_dtime = get_stats(my_dvisits)

    total_dvisits = EyeHistory.objects.filter(domain=domain)
    total_dcount, total_dtime = get_stats(total_dvisits)

    res = {
        'my_count': my_count,
        'my_time': my_time,
        'total_count': total_count,
        'total_time': total_time,
        'my_dcount': my_dcount,
        'my_dtime': my_dtime,
        'total_dcount': total_dcount,
        'total_dtime': total_dtime,
    }

    return {'result': res}
Exemplo n.º 4
0
def stats(request):
    url = request.GET.get("url", '')
    my_user = get_object_or_404(User, username=request.user.username)


    my_visits = EyeHistory.objects.filter(user=my_user, url=url)
    my_count, my_time = get_stats(my_visits)

    total_visits = EyeHistory.objects.filter(url=url)
    total_count, total_time = get_stats(total_visits)

    domain = url_domain(url)
    my_dvisits = EyeHistory.objects.filter(user=my_user, domain=domain)
    my_dcount, my_dtime = get_stats(my_dvisits)

    total_dvisits = EyeHistory.objects.filter(domain=domain)
    total_dcount, total_dtime = get_stats(total_dvisits)


    res = {'my_count': my_count,
           'my_time': my_time,
           'total_count': total_count,
           'total_time': total_time,
           'my_dcount': my_dcount,
           'my_dtime': my_dtime,
           'total_dcount': total_dcount,
           'total_dtime': total_dtime,
          }

    return {'result': res}
Exemplo n.º 5
0
def active(request):
    url = request.GET.get('url', '')

    domain = url_domain(url)

    timestamp = timezone.now() - datetime.timedelta(days=7)

    used_users = []
    active_users = []
    active_dusers = []

    eyehists = EyeHistory.objects.filter(
        (Q(url=url) | Q(domain=domain)) &
        Q(start_time__gt=timestamp) &
        ~Q(user_id=request.user.id)
    ).order_by('-end_time').select_related()

    for eyehist in eyehists:
        if len(used_users) >= 6:
            break
        user = eyehist.user
        if user not in used_users:
            old_level = 3
            if eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(minutes=5)):
                old_level = 0
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=1)):
                old_level = 1
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=24)):
                old_level = 2

            if url == eyehist.url:
                active_users.append({'username': user.username,
                                     'pic_url': gravatar_for_user(user),
                                     'resourceURI': '%s/users/%s' % (BASE_URL, user.username),
                                     'old_level': old_level,
                                     'time_ago': humanize_time(
                                         timezone.now() - eyehist.end_time)
                                     })
            else:
                active_dusers.append({'username': user.username,
                                      'pic_url': gravatar_for_user(user),
                                      'resourceURI': '%s/users/%s' % (BASE_URL, user.username),
                                      'old_level': old_level,
                                      'time_ago': humanize_time(
                                          timezone.now() - eyehist.end_time)
                                      })
            used_users.append(user)

    return {
        'result': {
            'page': active_users,
            'domain': active_dusers
        }
    }
Exemplo n.º 6
0
    def obj_create(self, bundle, request=None, **kwargs):

        url = bundle.data['url']
        domain = url_domain(url)
          
        bundle.data["domain"] = domain
  
        title = bundle.data['title']
        start_time = bundle.data['start_time']
        start_event = bundle.data['start_event']
        end_time = bundle.data['end_time']
        end_event = bundle.data['end_event']
        favIconUrl = bundle.data.get('favIconUrl')
        src = bundle.data['src']
        
        end_time = datetime.datetime.strptime(end_time, '%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=pytz.utc)
        start_time = datetime.datetime.strptime(start_time, '%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=pytz.utc)
        
        message = bundle.data.get('message')
        
        if message and message.strip() == '':
            message = None
            
        if message:
            bundle.data.pop('message', None)

        try:
            exists = EyeHistory.objects.filter(user=request.user, url=url, title=title, src=src, favIconUrl=favIconUrl, start_time__gt=start_time-datetime.timedelta(minutes=1), start_event=start_event)
            if exists.count() > 0:
                eye_his = exists[0]
                eye_his.end_time = end_time
                eye_his.end_event = end_event
                elapsed_time = end_time - start_time
                eye_his.total_time = int(round((elapsed_time.microseconds / 1.0E3) + (elapsed_time.seconds * 1000) + (elapsed_time.days * 8.64E7)))
                eye_his.humanize_time = humanize_time(elapsed_time)
                eye_his.save()
                if message:
                    eye_message, created = EyeHistoryMessage.objects.get_or_create(eyehistory=eye_his, message=message)
            else:
               # save_raw_eyehistory(request.user, url, title, start_event, end_event, start_time, end_time, src, domain, favIconUrl)
                dup_histories = EyeHistory.objects.filter(user=request.user, url=url, title=title, end_time__gt=start_time-datetime.timedelta(minutes=5))
                if dup_histories.count() > 0:
                    obj = merge_histories(dup_histories, end_time, end_event)
                    if message:
                        eye_message, created = EyeHistoryMessage.objects.get_or_create(eyehistory=obj, message=message)
                else:
                    bundle_res = super(EyeHistoryResource, self).obj_create(bundle, request, user=request.user, **kwargs)
                    if message:
                        eye_message, created = EyeHistoryMessage.objects.get_or_create(eyehistory=bundle_res.obj, message=message)
                    return bundle_res;
        except Exception, e:
            logger.exception(e)
Exemplo n.º 7
0
    def handle(self, **options):
        self.stdout.write('Beginning update...\n')
        history = EyeHistory.objects.all()

        count = 0
        for h in history:
            if not count % 100:
                self.stdout.write('Updated %s \n' % count)

            h.domain = url_domain(h.url)
            h.save()

            count += 1

        self.stdout.write('Update complete.\n')
Exemplo n.º 8
0
def stats(request):
    url = request.GET.get('url', '')
    my_user = get_object_or_404(User, username=request.user.username)

    my_visits = EyeHistory.objects.filter(user=my_user, url=url)
    my_count, my_time = get_stats(my_visits)

    total_visits = EyeHistory.objects.filter(url=url)
    total_count, total_time = get_stats(total_visits)

    domain = url_domain(url)
    my_dvisits = EyeHistory.objects.filter(user=my_user, domain=domain)
    my_dcount, my_dtime = get_stats(my_dvisits)

    total_dvisits = EyeHistory.objects.filter(domain=domain)
    total_dcount, total_dtime = get_stats(total_dvisits)

    domain,_ = Domain.objects.get_or_create(url=domain)
    page,_ = Page.objects.get_or_create(url=url,domain=domain)
    domain_score = domain.agg_score

    score = 0
    error = "Success"

    try:
        rating = Ratings.objects.get(user=my_user,page=page)
        score = rating.score
    except Ratings.DoesNotExist:
        error = "Failure: Rating does not exist"

    res = {'my_count': my_count,
           'my_time': my_time,
           'total_count': total_count,
           'total_time': total_time,
           'my_dcount': my_dcount,
           'my_dtime': my_dtime,
           'total_dcount': total_dcount,
           'total_dtime': total_dtime,
           'score': score,
           'domain_score': domain_score
           }

    return {
        'result': res
    }
Exemplo n.º 9
0
def rating_get(request):
    user = request.user
    success = False
    errors = {}
    data = None
    url = request.GET.get("url")
    domain = url_domain(url)
    errors["rating"] = []
    data = {"url": url, "domain": domain}

    domain, _ = Domain.objects.get_or_create(url=domain)
    page, _ = Page.objects.get_or_create(url=url, domain=domain)
    try:
        rating = Ratings.objects.get(user=user, page=page)
        data["score"] = rating.score
        data["domain_score"] = 0
        success = True
    except Ratings.DoesNotExist:
        errors["rating"].append("Rating does not exist")

    return {"success": success, "errors": errors, "data": data}
Exemplo n.º 10
0
def bubble_info(request):
    url = request.POST.get('url', '')

    domain = url_domain(url)

    timestamp = timezone.now() - datetime.timedelta(days=7)

    used_users = []

    active = []

    followers = User.objects.filter(userprofile__followed_by=request.user)

    eyehists = EyeHistory.objects.filter(
        (Q(url=url) | Q(domain=domain)) & Q(start_time__gt=timestamp)
        & ~Q(user_id=request.user.id)).order_by('-end_time').select_related()

    for eyehist in eyehists:
        if len(active) >= 6:
            break
        user = eyehist.user
        if user not in used_users and user in followers:
            old_level = 3
            if eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(minutes=5)):
                old_level = 0
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=1)):
                old_level = 1
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=24)):
                old_level = 2

            url_level = "site-level"
            if eyehist.url == url:
                url_level = "page-level"

            active.append({
                'username':
                user.username,
                'pic_url':
                gravatar_for_user(user),
                'url':
                '%s/users/%s' % (BASE_URL, user.username),
                'old_level':
                old_level,
                'url_level':
                url_level,
                'time_ago':
                humanize_time(timezone.now() - eyehist.end_time)
            })
            used_users.append(user)

    messages = EyeHistoryMessage.objects.filter(
        Q(eyehistory__url=url)
        & Q(post_time__gt=timestamp)).order_by('-post_time').select_related()
    about_message = None
    user_url = None
    username = None
    message = None

    for m in messages:
        if m.eyehistory.user in followers:
            message = m.message
            about_message = humanize_time(timezone.now() -
                                          m.post_time) + ' ago'
            user_url = '%s/users/%s' % (BASE_URL, m.eyehistory.user.username)
            username = m.eyehistory.user.username
            break

    if not about_message:
        chat_messages = ChatMessage.objects.filter(
            url=url).order_by('-date').select_related()
        for c in chat_messages:
            if c.author in followers:
                about_message = humanize_time(timezone.now() - c.date) + ' ago'
                message = '"%s"' % (c.message)
                user_url = '%s/users/%s' % (BASE_URL, c.author.username)
                username = c.author.username
                break

    if not about_message:
        about_message = ''
        message = ''

    return JSONResponse({
        'url': url,
        'active_users': active,
        'message': message,
        'about_message': about_message,
        'user_url': user_url,
        'username': username,
    })
Exemplo n.º 11
0
    def obj_create(self, bundle, request=None, **kwargs):
        url = bundle.data['url']
        domain = url_domain(url)

        bundle.data['domain'] = domain

        title = bundle.data['title']
        start_time = bundle.data['start_time']
        start_event = bundle.data['start_event']
        end_time = bundle.data['end_time']
        end_event = bundle.data['end_event']
        favicon_url = bundle.data.get('favIconUrl')
        bundle.data['favicon_url'] = favicon_url
        src = bundle.data['src']

        end_time = datetime.datetime.strptime(
            end_time, '%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=pytz.utc)
        start_time = datetime.datetime.strptime(
            start_time, '%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=pytz.utc)

        message = bundle.data.get('message')

        if message and message.strip() == '':
            message = None

        if message:
            bundle.data.pop('message', None)

        try:
            exists = EyeHistory.objects.filter(user=request.user,
                                               url=url,
                                               title=title,
                                               src=src,
                                               favicon_url=favicon_url,
                                               start_time__gt=start_time -
                                               datetime.timedelta(minutes=1),
                                               start_event=start_event)
            if exists.count() > 0:
                eye_his = exists[0]
                eye_his.end_time = end_time
                eye_his.end_event = end_event
                elapsed_time = end_time - start_time
                eye_his.total_time = int(
                    round((elapsed_time.microseconds / 1.0E3) +
                          (elapsed_time.seconds * 1000) +
                          (elapsed_time.days * 8.64E7)))
                eye_his.humanize_time = humanize_time(elapsed_time)
                eye_his.save()
                if message:
                    eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                        eyehistory=eye_his, message=message)
                    notify_message(message=eye_message)
            else:
                # save_raw_eyehistory(request.user, url, title, start_event, end_event, start_time, end_time, src, domain, favicon_url)
                dup_histories = EyeHistory.objects.filter(
                    user=request.user,
                    url=url,
                    title=title,
                    end_time__gt=start_time - datetime.timedelta(minutes=5))
                if dup_histories.count() > 0:
                    obj = merge_histories(dup_histories, end_time, end_event)
                    if message:
                        eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                            eyehistory=obj, message=message)
                        notify_message(message=eye_message)
                else:
                    bundle_res = super(EyeHistoryResource,
                                       self).obj_create(bundle,
                                                        request,
                                                        user=request.user,
                                                        **kwargs)
                    check_bumps(request.user, start_time, end_time, url)

                    if message:
                        eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                            eyehistory=bundle_res.obj, message=message)
                        notify_message(message=eye_message)

                    return bundle_res
        except MultipleObjectsReturned as e:
            logger.info(e)
            # multiple items created, delete duplicates
            call_command('remove_duplicate_history')

        return bundle
Exemplo n.º 12
0
    def obj_create(self, bundle, request=None, **kwargs):
        url = bundle.data['url']
        domain = url_domain(url)

        bundle.data['domain'] = domain

        title = bundle.data.get('title')
        start_time = bundle.data.get('start_time')
        start_event = bundle.data.get('start_event')
        end_time = bundle.data.get('end_time')
        end_event = bundle.data.get('end_event')
        favicon_url = bundle.data.get('favIconUrl')
        bundle.data['favicon_url'] = favicon_url
        src = bundle.data.get('src')
        tags = bundle.data.get('tags')

        if tags:
            tags = json.loads(tags);

        if end_time and start_time:
            end_time = datetime.datetime.strptime(
                end_time, '%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=pytz.utc)
            start_time = datetime.datetime.strptime(
                start_time, '%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=pytz.utc)
        else:
            end_time = datetime.datetime.now().replace(tzinfo=pytz.utc)
            start_time = datetime.datetime.now().replace(tzinfo=pytz.utc)

        message = bundle.data.get('message')
        highlight = bundle.data.get('highlight')
        parent_comment = bundle.data.get('parent_comment')

        if message and message.strip() == '':
            message = None

        if message:
            bundle.data.pop('message', None)
        if highlight:
            bundle.data.pop('highlight', None)
        if parent_comment:
            bundle.data.pop('parent_comment', None)

        try:
            exists = EyeHistory.objects.filter(user=request.user, url=url,
                                               title=title, src=src, favicon_url=favicon_url,
                                               start_time__gt=start_time -
                                               datetime.timedelta(minutes=1),
                                               start_event=start_event)
            if exists.count() > 0:
                eye_his = exists[0]
                eye_his.end_time = end_time
                eye_his.end_event = end_event
                elapsed_time = end_time - start_time
                eye_his.total_time = int(round(
                    (elapsed_time.microseconds / 1.0E3) + (elapsed_time.seconds * 1000) + (elapsed_time.days * 8.64E7)))
                eye_his.humanize_time = humanize_time(elapsed_time)
                eye_his.save()
                if message:
                    eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                        eyehistory=eye_his, message=message)
                    notify_message(message=eye_message)
            else:
                # save_raw_eyehistory(request.user, url, title, start_event, end_event, start_time, end_time, src, domain, favicon_url)
                dup_histories = EyeHistory.objects.filter(
                    user=request.user, url=url, title=title, end_time__gt=start_time - datetime.timedelta(minutes=5))
                if dup_histories.count() > 0:
                    obj = merge_histories(dup_histories, end_time, end_event)
                    if message:
                        eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                            eyehistory=obj, message=message)
                        notify_message(message=eye_message)
                else:
                    bundle_res = super(EyeHistoryResource, self).obj_create(
                        bundle, request, user=request.user, **kwargs)
                    check_bumps(request.user, start_time, end_time, url)
                    if message:
                        eye_message = None
                        if parent_comment:
                            h = Highlight.objects.get(id=highlight)
                            eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                                eyehistory=bundle_res.obj, message=message, highlight=h, parent_comment=parent_comment)
                        elif highlight:
                            h = Highlight.objects.get(id=highlight)
                            eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                                eyehistory=bundle_res.obj, message=message, highlight=h)
                        else:
                            eye_message, _ = EyeHistoryMessage.objects.get_or_create(
                                eyehistory=bundle_res.obj, message=message)

                        if tags:
                            for tag in tags:
                                if len(Tag.objects.filter(comment=eye_message, common_tag__name=tag)) == 0:
                                    try:
                                        common_tag = CommonTag.objects.get(name=tag)
                                        vt = Tag(
                                            common_tag=common_tag,
                                            user=request.user,
                                            comment=eye_message,
                                        )
                                        vt.save()
                                    except CommonTag.DoesNotExist:
                                        pass


                        notify_message(message=eye_message)
                    return bundle_res
        except MultipleObjectsReturned as e:
            logger.info(e)
            # multiple items created, delete duplicates
            call_command('remove_duplicate_history')

        return bundle
Exemplo n.º 13
0
def get_info(request):
    url = request.GET.get("url")

    domain = url_domain(url)

    timestamp =  timezone.now() - datetime.timedelta(days=7)

    used_users = []

    active = []

    eyehists = EyeHistory.objects.filter((Q(url=url) | Q(domain=domain)) & Q(start_time__gt=timestamp) & ~Q(user_id=request.user.id)).order_by('-end_time').select_related()

    for eyehist in eyehists:
        if len(active) >= 6:
            break
        user = eyehist.user
        if user not in used_users:
            old_level = 3
            if eyehist.end_time > (timezone.now() - datetime.timedelta(minutes=5)):
                old_level = 0
            elif eyehist.end_time > (timezone.now() - datetime.timedelta(hours=1)):
                old_level = 1
            elif eyehist.end_time > (timezone.now() - datetime.timedelta(hours=24)):
                old_level = 2

            active.append({'username': user.username,
                        'pic_url': gravatar_for_user(user),
                        'url': '%s/users/%s' % (BASE_URL,user.username),
                        'old_level': old_level,
                        'time_ago': humanize_time(timezone.now()-eyehist.end_time)
                        })
            used_users.append(user)

    message = EyeHistoryMessage.objects.filter(eyehistory__url=url).select_related()
    about_message = None
    user_url = None
    username = None

    if message:
        about_message = humanize_time(timezone.now() - message[0].post_time) + ' ago'
        message = message[0].message

    if not about_message:
        chat_message = ChatMessage.objects.filter(url=url).select_related()
        if chat_message:
            about_message = humanize_time(timezone.now() - chat_message[0].date) + ' ago'
            message = '"%s"' % (chat_message[0].message)
            user_url = '%s/users/%s' % (BASE_URL,chat_message[0].author.username)
            username = chat_message[0].author.username

    if not about_message:
        about_message = ''
        message = ''

    return {
        'url' : url,
        'active_users': active,
        'message': message,
        'about_message': about_message,
        'user_url': user_url,
        'username': username,
    }
Exemplo n.º 14
0
def bubble_info(request):
    url = request.POST.get('url', '')

    domain = url_domain(url)

    timestamp = timezone.now() - datetime.timedelta(days=7)

    used_users = []

    active = []

    followers = User.objects.filter(userprofile__followed_by=request.user)

    eyehists = EyeHistory.objects.filter((
        Q(url=url) | Q(domain=domain)) &
        Q(start_time__gt=timestamp) &
        ~Q(user_id=request.user.id)
    ).order_by('-end_time').select_related()

    for eyehist in eyehists:
        if len(active) >= 6:
            break
        user = eyehist.user
        if user not in used_users and user in followers:
            old_level = 3
            if eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(minutes=5)):
                old_level = 0
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=1)):
                old_level = 1
            elif eyehist.end_time > \
                    (timezone.now() - datetime.timedelta(hours=24)):
                old_level = 2

            url_level = "site-level"
            if eyehist.url == url:
                url_level = "page-level"

            active.append({'username': user.username,
                           'pic_url': gravatar_for_user(user),
                           'url': '%s/users/%s' % (BASE_URL, user.username),
                           'old_level': old_level,
                           'url_level': url_level,
                           'time_ago': humanize_time(
                               timezone.now() - eyehist.end_time)
                           })
            used_users.append(user)

    messages = EyeHistoryMessage.objects.filter(
        Q(eyehistory__url=url) &
        Q(post_time__gt=timestamp)
    ).order_by('-post_time').select_related()
    about_message = None
    user_url = None
    username = None
    message = None

    for m in messages:
        if m.eyehistory.user in followers:
            message = m.message
            about_message = humanize_time(
                timezone.now() - m.post_time) + ' ago'
            user_url = '%s/users/%s' % (BASE_URL, m.eyehistory.user.username)
            username = m.eyehistory.user.username
            break

    if not about_message:
        chat_messages = ChatMessage.objects.filter(
            url=url).order_by('-date').select_related()
        for c in chat_messages:
            if c.author in followers:
                about_message = humanize_time(timezone.now() - c.date) + ' ago'
                message = '"%s"' % (c.message)
                user_url = '%s/users/%s' % (BASE_URL, c.author.username)
                username = c.author.username
                break

    if not about_message:
        about_message = ''
        message = ''

    return JSONResponse({
        'url': url,
        'active_users': active,
        'message': message,
        'about_message': about_message,
        'user_url': user_url,
        'username': username,
    })
Exemplo n.º 15
0
def get_info(request):
    url = request.GET.get("url")

    domain = url_domain(url)

    timestamp = timezone.now() - datetime.timedelta(days=7)

    used_users = []

    active = []

    eyehists = EyeHistory.objects.filter(
        (Q(url=url) | Q(domain=domain)) & Q(start_time__gt=timestamp)
        & ~Q(user_id=request.user.id)).order_by('-end_time').select_related()

    for eyehist in eyehists:
        if len(active) >= 6:
            break
        user = eyehist.user
        if user not in used_users:
            old_level = 3
            if eyehist.end_time > (timezone.now() -
                                   datetime.timedelta(minutes=5)):
                old_level = 0
            elif eyehist.end_time > (timezone.now() -
                                     datetime.timedelta(hours=1)):
                old_level = 1
            elif eyehist.end_time > (timezone.now() -
                                     datetime.timedelta(hours=24)):
                old_level = 2

            active.append({
                'username':
                user.username,
                'pic_url':
                gravatar_for_user(user),
                'url':
                '%s/users/%s' % (BASE_URL, user.username),
                'old_level':
                old_level,
                'time_ago':
                humanize_time(timezone.now() - eyehist.end_time)
            })
            used_users.append(user)

    message = EyeHistoryMessage.objects.filter(
        eyehistory__url=url).select_related()
    about_message = None
    user_url = None
    username = None

    if message:
        about_message = humanize_time(timezone.now() -
                                      message[0].post_time) + ' ago'
        message = message[0].message

    if not about_message:
        chat_message = ChatMessage.objects.filter(url=url).select_related()
        if chat_message:
            about_message = humanize_time(timezone.now() -
                                          chat_message[0].date) + ' ago'
            message = '"%s"' % (chat_message[0].message)
            user_url = '%s/users/%s' % (BASE_URL,
                                        chat_message[0].author.username)
            username = chat_message[0].author.username

    if not about_message:
        about_message = ''
        message = ''

    return {
        'url': url,
        'active_users': active,
        'message': message,
        'about_message': about_message,
        'user_url': user_url,
        'username': username,
    }