Пример #1
0
def blog(req, blog_id):
    master_14 = RedisDriver().master_14

    ip = ''
    if 'HTTP_X_FORWARDED_FOR' in req.META:
        ip = req.META['HTTP_X_FORWARDED_FOR']
    else:
        ip = req.META['REMOTE_ADDR']

    user_agent = req.META.get('HTTP_USER_AGENT', "")

    spider = False
    spider_list = ["Spider", "spider", "Googlebot", "bingbot"]
    for i in spider_list:
        if i in user_agent:
            spider = True
            break

    ips_access = cache.get("ips_access_{0}".format(blog_id), [])
    ip_attribution = "匿名"
    if len(ip) < 20:
        if not spider:
            ip_attribution = sina_ip(ip)
            if ip not in ips_access:
                ips_access.append(ip)
                # print(len(ips_access))
                if len(ips_access) > 5:
                    ips_access.pop(0)
                cache.set("ips_access_{0}".format(blog_id), ips_access, 60 * 60 * 24 * 30)

    ips_info = {}
    if ips_access:
        for ip in ips_access:
            ip_attribution = sina_ip(ip)
            ip_access_time = master_14.get(ip)
            ips_info[ip_attribution] = ip_access_time

    ips_info = sorted(ips_info.items(), key=lambda d: d[1], reverse=True)

    ip_obj = IP_access.objects.filter(ip=ip)
    blog_obj = Blog.objects.filter(blog_id=blog_id)

    ip_num = 0
    if blog_obj:
        blog = Blog.objects.get(blog_id=blog_id)
        if ip_obj:  # 如果已存在此ip
            ip = IP_access.objects.get(ip=ip)
            ip.blogs.add(blog)
            ip_num = blog.ip_access_set.all()
            blog.IP_num = len(ip_num)
            blog.PV_num += 1
            blog.save()
        else:
            ip = IP_access(ip=ip)
            ip.save()
            ip.blogs.add(blog)
            ip_num = blog.ip_access_set.all()
            blog.IP_num = len(ip_num)
            blog.PV_num += 1
            blog.save()

    # print(len(ip_num))

    if req.method == "POST":
        content = req.POST.get('content', None)
        p_id = req.POST.get('p_id', None)
        if p_id and content:
            blog = Blog.objects.get(blog_id=blog_id)

            Replay.objects.create(content=content, blog=blog, replay_time=datetime.datetime.today(),
                                  replay_user=ip_attribution, replay_id=0, parent_id=p_id)

            return HttpResponse(json.dumps({"content": content}))

        elif content:
            item = Blog.objects.get(blog_id=blog_id)
            num = 0
            try:
                blog = Blog.objects.get(blog_id=blog_id)
                replays_re = Replay.objects.filter(blog=blog, replay_id=0)
                replays_er = Replay.objects.filter(blog=blog)
                replays = int(len(replays_er)) - (len(replays_re))
                num = replays
            except Exception as e:
                error_log.error(e)

            Replay.objects.create(content=content, blog=item, replay_time=datetime.datetime.today(),
                                  replay_user=ip_attribution,
                                  replay_id=num + 1, parent_id=0)
            return HttpResponse(json.dumps({"content": content}))

    blog_id = blog_id
    replays = None
    replay_num = None
    PV_num = None
    to_replays_dict = {}
    blog_list = []
    try:
        # replays = Blog.objects.get(blog_id=blog_id).replay_set.all()
        blog = Blog.objects.get(blog_id=blog_id)
        categorie = blog.categorie
        PV_num = blog.PV_num
        replays = Replay.objects.filter(blog=blog, parent_id=0)
        replay_num = int(len(replays))  # 评论数量
        for replay in replays:
            to_replays = Replay.objects.filter(blog=blog, parent_id=replay.id)
            to_replays_dict[replay] = to_replays

    except Exception as e:
        error_log.error(e)
    return render_to_response(blog_id + '.html', {
        'blog_id': blog_id,
        'replay_num': replay_num,
        'PV_num': PV_num,
        'ip_num': ip_num,
        'replays': replays,
        'to_replays_dict': to_replays_dict,
        'ips_info': ips_info
    }, context_instance=RequestContext(req))
Пример #2
0
def blog(req, blog_id):
    ip = ''
    if 'HTTP_X_FORWARDED_FOR' in req.META:
        ip = req.META['HTTP_X_FORWARDED_FOR']
    else:
        ip = req.META['REMOTE_ADDR']

    ip_attribution = sina_ip(ip)

    ip_obj = IP_access.objects.filter(ip=ip)
    blog_obj = Blog.objects.filter(blog_id=blog_id)

    ip_num = 0
    if blog_obj:
        blog = Blog.objects.get(blog_id=blog_id)
        if ip_obj:  #如果已存在此ip
            ip = IP_access.objects.get(ip=ip)
            ip.blogs.add(blog)
            ip_num = blog.ip_access_set.all()
            blog.IP_num = len(ip_num)
            blog.PV_num += 1
            blog.save()
        else:
            ip = IP_access(ip=ip)
            ip.save()
            ip.blogs.add(blog)
            ip_num = blog.ip_access_set.all()
            blog.IP_num = len(ip_num)
            blog.PV_num += 1
            blog.save()

    print(len(ip_num))

    if req.method == "POST":
        content = req.POST.get('content', None)
        p_id = req.POST.get('p_id', None)
        if p_id and content:
            blog = Blog.objects.get(blog_id=blog_id)

            Replay.objects.create(content=content, blog=blog, replay_time=datetime.datetime.today(),
                                  replay_user=ip_attribution, replay_id=0, parent_id=p_id)

            return HttpResponse(json.dumps({"content": content}))

        elif content:
            item = Blog.objects.get(blog_id=blog_id)
            num = 0
            try:
                blog = Blog.objects.get(blog_id=blog_id)
                replays_re = Replay.objects.filter(blog=blog, replay_id=0)
                replays_er = Replay.objects.filter(blog=blog)
                replays = int(len(replays_er)) - (len(replays_re))
                num = replays
            except Exception as e:
                error_log.error(e)

            Replay.objects.create(content=content, blog=item, replay_time=datetime.datetime.today(), replay_user=ip_attribution,
                                  replay_id=num + 1, parent_id=0)
            return HttpResponse(json.dumps({"content": content}))

    blog_id = blog_id
    replays = None
    replay_num = None
    PV_num = None
    to_replays_dict = {}
    blog_list = []
    try:
        # replays = Blog.objects.get(blog_id=blog_id).replay_set.all()
        blog = Blog.objects.get(blog_id=blog_id)
        categorie = blog.categorie
        PV_num = blog.PV_num
        replays = Replay.objects.filter(blog=blog, parent_id=0)
        replay_num = int(len(replays))  # 评论数量
        for replay in replays:
            to_replays = Replay.objects.filter(blog=blog, parent_id=replay.id)
            to_replays_dict[replay] = to_replays

    except Exception as e:
        error_log.error(e)
    return render_to_response(blog_id + '.html', {
        'blog_id': blog_id,
        'replay_num': replay_num,
        'PV_num': PV_num,
        'ip_num': ip_num,
        'replays': replays,
        'to_replays_dict': to_replays_dict,
    }, context_instance=RequestContext(req))
Пример #3
0
def blog(req, blog_id):
    print('11111111111111111111')
    master_14 = RedisDriver().master_14

    ip = ''
    if 'HTTP_X_FORWARDED_FOR' in req.META:
        ip = req.META['HTTP_X_FORWARDED_FOR']
    else:
        ip = req.META['REMOTE_ADDR']

    user_agent = req.META.get('HTTP_USER_AGENT', "")

    spider = False
    spider_list = ["Spider", "spider", "Googlebot", "bingbot"]
    for i in spider_list:
        if i in user_agent:
            spider = True
            break

    ips_access = cache.get("ips_access_{0}".format(blog_id), [])
    ip_attribution = "匿名"
    if len(ip) < 20:
        if not spider:
            ip_attribution = sina_ip(ip)
            if ip not in ips_access:
                ips_access.append(ip)
                # print(len(ips_access))
                if len(ips_access) > 5:
                    ips_access.pop(0)
                cache.set("ips_access_{0}".format(blog_id), ips_access,
                          60 * 60 * 24 * 30)

    ips_info = {}
    if ips_access:
        for ip in ips_access:
            ip_attribution = sina_ip(ip)
            ip_access_time = master_14.get(ip)
            if ip_access_time:
                ips_info[ip_attribution] = ip_access_time
    ips_info = sorted(ips_info.items(), key=lambda d: d[1], reverse=True)

    ip_obj = IP_access.objects.filter(ip=ip)
    blog_obj = Blog.objects.filter(blog_id=blog_id)

    ip_num = 0
    if blog_obj:
        blog = Blog.objects.get(blog_id=blog_id)
        if ip_obj:  # 如果已存在此ip
            ip = IP_access.objects.get(ip=ip)
            ip.blogs.add(blog)
            ip_num = blog.ip_access_set.all()
            blog.IP_num = len(ip_num)
            blog.PV_num += 1
            blog.save()
        else:
            ip = IP_access(ip=ip)
            ip.save()
            ip.blogs.add(blog)
            ip_num = blog.ip_access_set.all()
            blog.IP_num = len(ip_num)
            blog.PV_num += 1
            blog.save()

    # print(len(ip_num))

    if req.method == "POST":
        content = req.POST.get('content', None)
        p_id = req.POST.get('p_id', None)
        if p_id and content:
            blog = Blog.objects.get(blog_id=blog_id)

            Replay.objects.create(content=content,
                                  blog=blog,
                                  replay_time=datetime.datetime.today(),
                                  replay_user=ip_attribution,
                                  replay_id=0,
                                  parent_id=p_id)

            return HttpResponse(json.dumps({"content": content}))

        elif content:
            item = Blog.objects.get(blog_id=blog_id)
            num = 0
            try:
                blog = Blog.objects.get(blog_id=blog_id)
                replays_re = Replay.objects.filter(blog=blog, replay_id=0)
                replays_er = Replay.objects.filter(blog=blog)
                replays = int(len(replays_er)) - (len(replays_re))
                num = replays
            except Exception as e:
                error_log.error(e)

            Replay.objects.create(content=content,
                                  blog=item,
                                  replay_time=datetime.datetime.today(),
                                  replay_user=ip_attribution,
                                  replay_id=num + 1,
                                  parent_id=0)
            return HttpResponse(json.dumps({"content": content}))

    blog_id = blog_id
    replays = None
    replay_num = None
    PV_num = None
    to_replays_dict = {}
    blog_list = []
    try:
        # replays = Blog.objects.get(blog_id=blog_id).replay_set.all()
        blog = Blog.objects.get(blog_id=blog_id)
        categorie = blog.categorie
        PV_num = blog.PV_num
        replays = Replay.objects.filter(blog=blog, parent_id=0)
        replay_num = int(len(replays))  # 评论数量
        for replay in replays:
            to_replays = Replay.objects.filter(blog=blog, parent_id=replay.id)
            to_replays_dict[replay] = to_replays

    except Exception as e:
        error_log.error(e)
    return render_to_response(blog_id + '.html', {
        'blog_id': blog_id,
        'replay_num': replay_num,
        'PV_num': PV_num,
        'ip_num': ip_num,
        'replays': replays,
        'to_replays_dict': to_replays_dict,
        'ips_info': ips_info
    },
                              context_instance=RequestContext(req))