def get_other_user(request):
    if request.method == 'POST':
        req_type = request.content_type
        if ("application/json" not in req_type):
            return JsonResponse(common.build_result(CLIENT_ERROR,
                                                    "请求格式需为application/json"),
                                safe=False)
        req_json = json.loads(request.body)
        req_userid = req_json.get("userid")
        qr = User.objects.filter(userId=req_userid)
        if len(qr) < 1:
            return JsonResponse(common.build_result(CLIENT_ERROR,
                                                    NO_THIS_USER),
                                safe=False)
        # 找到用户信息
        user = qr[0]
        user.__dict__.pop("token")
        resp = common.build_model_data(user)
        # 找到用户博客
        qr_blog = MicroBlog.objects.all().filter(authorId=req_userid).filter(
            isDeleted=0).order_by("-createTime")
        bloglist = adjust_list(qr_blog)
        user.blogs = bloglist
        return JsonResponse(resp, safe=False)
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)
def pride_blog(request):
    if request.method == 'POST':
        r_userid = request.META.get("HTTP_USERID")
        r_blogid = request.POST.get("blogId", '')
        mqr = MicroBlog.objects.filter(blogId=r_blogid)
        if not mqr.exists():
            return JsonResponse(common.build_result(NO_RESOURCE, "博客不存在"),
                                safe=False)
        blog = mqr[0]
        qr2 = Pride.objects.filter(blogId=r_blogid)
        if not qr2.exists():
            blog.prideCount = blog.prideCount + 1
            blog.save()
            Pride(blogId=r_blogid, authorId=r_userid).save()
            return JsonResponse(common.build_result(SUCCESS, "success"))
        if qr2.filter(authorId=r_userid).exists():
            return JsonResponse(common.build_result(FATAL_WORK, "已经点过赞了"),
                                safe=False)
        else:
            blog.prideCount = blog.prideCount + 1
            blog.save()
            # 增加点赞记录
            Pride(blogId=r_blogid, authorId=r_userid).save()
            return JsonResponse(common.build_result(SUCCESS, "success"))
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)
Beispiel #3
0
def create_blog(request):
    if request.method == 'POST':
        params = request.POST
        if "title" not in params:
            return JsonResponse(common.build_result(CLIENT_ERROR, LACK_PARAM), safe=False)
        r_userid = request.META.get("HTTP_USERID")
        r_text = request.POST.get("text", '0')
        r_title = request.POST.get("title", '')
        r_icon = request.POST.get("icon", None)
        qr = User.objects.filter(userId=r_userid)
        largeicon = 0
        if len(qr) == 0:
            return JsonResponse(common.build_result(CLIENT_ERROR, NO_THIS_USER), safe=False)
        if r_icon is None:
            r = random.randint(0, 1)
            if r == 0:
                r_icon = const.inner_small_icons[
                    random.randint(0, len(const.inner_small_icons) - 1)]
            else:
                largeicon = 1
                r_icon = const.inner_big_icons[random.randint(0, len(const.inner_big_icons) - 1)]
        ran = random.randint(1, 100)
        curtime = int(round(time.time() * 1000))
        r_blogid = hashlib.md5(
            ("%s-%d-%s" % (r_userid, ran, curtime)).encode(encoding='UTF-8')).hexdigest()
        MicroBlog(blogId=r_blogid, title=r_title, text=r_text, icon=r_icon,
                  authorId=r_userid, isLargeIcon=largeicon).save()
        return JsonResponse(common.build_result(SUCCESS, "success"))
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD), safe=False)
Beispiel #4
0
def comment(request):
    if request.method == 'POST':
        r_userid = request.META.get("HTTP_USERID")
        r_parentid = request.POST.get("parentId", '')
        r_content = request.POST.get("content", '')
        r_type = request.POST.get("type", 1)
        if len(r_content) == 0:
            return JsonResponse(common.build_result(CLIENT_ERROR, "内容为空"),
                                safe=False)
        q_blog = MicroBlog.objects.filter(blogId=r_parentid)
        if r_type == 1 and len(q_blog) == 0:
            return JsonResponse(common.build_result(CLIENT_ERROR, "博客不存在"),
                                safe=False)
        q_user = User.objects.filter(userId=r_userid)[0]
        Comment(authorId=r_userid,
                authorName=q_user.nickname,
                authorAvatar=q_user.avatar,
                parentId=r_parentid,
                content=r_content,
                type=r_type).save()
        q_blog[0].commentCount = q_blog[0].commentCount + 1
        q_blog[0].save()
        return JsonResponse(common.build_result(SUCCESS, "success"))
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)
def is_collected(request):
    if request.method == 'POST':
        r_userid = request.META.get("HTTP_USERID")
        r_itemId = request.POST.get("itemId", '')
        qr2 = Collect.objects.filter(itemId=r_itemId).filter(authorId=r_userid)
        if not qr2.exists():
            return JsonResponse(common.build_result(FATAL_WORK, "没有收藏过"),
                                safe=False)
        else:
            return JsonResponse(common.build_result(SUCCESS, "已收藏"),
                                safe=False)
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)
Beispiel #6
0
def add_looper(request):
    if request.method == 'POST':
        params = request.POST
        if "type" not in params or "mediaId" not in params:
            return JsonResponse(common.build_result(400, "lack param"), safe=False)
        r_type = request.POST.get("type", '0')
        r_id = request.POST.get("mediaId", '1')
        r_link = request.POST.get("link", '0')
        r_title = request.POST.get("title", 'title')
        r_pic = request.POST.get("picUrl", '0')
        tmp = Looper(type=r_type, mediaId=r_id, link=r_link, title=r_title, picUrl=r_pic)
        tmp.save()
        return JsonResponse(common.build_result(200, "success"))
    return JsonResponse(common.build_result(400, "error http method"), safe=False)
Beispiel #7
0
def get_user_blogs(request):
    r_userid = request.META.get("HTTP_USERID")
    pageNum = 1
    if request.method == 'POST':
        pageNum = request.POST.get("page", '1')
    if request.method == 'GET':
        pageNum = request.GET.get("page", '1')
    if pageNum == 0:
        pageNum = 1
    qr = MicroBlog.objects.all().filter(authorId=r_userid).filter(isDeleted=0).order_by(
        "-createTime")
    pt = paginator.Paginator(qr, 50)
    try:
        pages = pt.page(pageNum)
        tmp_pride = Pride.objects.filter(authorId=r_userid)
        tmp_col = Collect.objects.filter(authorId=r_userid)
        for d in pages:
            if isinstance(d, MicroBlog):
                if len(tmp_pride.filter(blogId=d.blogId)) > 0:
                    d.isPrided = MicroBlog.HAVE
                if len(tmp_col.filter(itemId=d.blogId)) > 0:
                    d.isCollected = MicroBlog.HAVE
        return JsonResponse(common.build_model_list(pages), safe=False)
    except:
        return JsonResponse(common.build_result(CLIENT_ERROR, "没有更多数据"), safe=False)
def update_user(request):
    if request.method == 'POST':
        post = request.POST
        r_desc = None
        r_avatar = None
        r_nickname = None
        if "desc" in post:
            r_desc = request.POST.get("desc")
        if "avatar" in post:
            r_avatar = request.POST.get("avatar")
        if "nickname" in post:
            r_nickname = request.POST.get("nickname")
        r_userid = request.META.get("HTTP_USERID", "")
        qr = User.objects.filter(userId=r_userid)
        user = qr[0]
        if r_desc is not None:
            user.selfDesc = r_desc
        if not r_avatar is None and r_avatar.startswith("http"):
            user.avatar = r_avatar
        if not r_nickname is None and len(r_nickname) > 0:
            user.nickname = r_nickname
        user.save()
        return JsonResponse(common.build_model_data(qr[0]), safe=False)
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)
Beispiel #9
0
def update_blog(request):
    if request.method == 'POST':
        params = request.POST
        if "title" not in params:
            return JsonResponse(common.build_result(CLIENT_ERROR, LACK_PARAM), safe=False)
        r_userid = request.META.get("HTTP_USERID")
        r_text = request.POST.get("text", '')
        r_blogid = request.POST.get("blogId", '')
        r_title = request.POST.get("title", '')
        r_icon = request.POST.get("icon", '')
        qr = User.objects.filter(userId=r_userid)
        if not qr.exists():
            return JsonResponse(common.build_result(NO_AUTH, NO_THIS_USER), safe=False)
        if r_userid != qr[0].userId:
            return JsonResponse(common.build_result(SERVER_ERROR, SERVER_ERROR_MSG), safe=False)
        mqr = MicroBlog.objects.filter(blogId=r_blogid)
        if not mqr.exists():
            return JsonResponse(common.build_result(NO_RESOURCE, "博客不存在"), safe=False)
        blog = mqr[0]
        if blog.authorId != r_userid:
            return JsonResponse(common.build_result(FATAL_WORK, "无权修改该博客"), safe=False)
        if len(r_title) > 0:
            blog.title = r_title
        if len(r_text) > 0:
            blog.text = r_text
        if len(r_icon) > 0:
            blog.icon = r_icon
        blog.save()
        return JsonResponse(common.build_result(SUCCESS, "success"))
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD), safe=False)
def register(request):
    if request.method == 'POST':
        rusername = request.POST.get("username", '0')
        rpwd = request.POST.get("password", '0')
        rpwd2 = request.POST.get("password2", '0')
        client = request.POST.get("client", 'app')
        if rpwd != rpwd2:
            return JsonResponse(common.build_result(CLIENT_ERROR, "两次密码不相同"),
                                safe=False)
        if len(rusername) < 3 or len(rpwd) < 3:
            return JsonResponse(common.build_result(CLIENT_ERROR, "用户名或密码太短"),
                                safe=False)
        if re.match("^[0-9a-zA-Z_]{1,}$", rusername) is None:
            return JsonResponse(common.build_result(CLIENT_ERROR, "用户名不符合规范"),
                                safe=False)
        qr = User.objects.filter(name=rusername)
        if len(qr) > 0:
            return JsonResponse(common.build_result(FATAL_WORK, "已存在该用户"),
                                safe=False)
        isalt = random.randint(100000, 999999)
        curtime = int(round(time.time() * 1000))
        iuserid = "uid%d" % curtime
        # 加盐,计算存储密码
        ipwd = hashlib.md5(
            ("%d-%s" % (isalt, rpwd)).encode(encoding='UTF-8')).hexdigest()
        itoken = common.create_token(iuserid, ipwd, client)
        from myapp import const
        iavatar = const.inner_headers[random.randint(
            0,
            len(const.inner_headers) - 1)]
        r_nickname = const.inner_nicknames[random.randint(
            0,
            len(const.inner_nicknames) - 1)]
        u = User(userId=iuserid,
                 pwd=ipwd,
                 name=rusername,
                 avatar=iavatar,
                 salt=isalt,
                 token=itoken,
                 nickname=r_nickname)
        u.save()
        return JsonResponse(common.build_model_data(u), safe=False)
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)
def collect(request):
    r_userid = request.META.get("HTTP_USERID")
    type = ""
    itemId = ""
    itemTitle = ""
    itemUrl = ""
    coverImg = ""
    if request.method == 'POST':
        type = request.POST.get("colType", '0')
        itemId = request.POST.get("itemId", '')
        itemTitle = request.POST.get("itemTitle", '')
        itemUrl = request.POST.get("itemUrl", '')
        coverImg = request.POST.get("coverImg", '')
    if request.method == 'GET':
        type = request.GET.get("colType", '0')
        itemId = request.GET.get("itemId", '')
        itemTitle = request.POST.get("itemTitle", '')
        itemUrl = request.POST.get("itemUrl", '')
        coverImg = request.POST.get("coverImg", '')
    if len(itemId) < 2:
        return JsonResponse(common.build_result(CLIENT_ERROR, "id不正确"),
                            safe=False)
    if type == 1:
        if len(itemUrl) < 8 and (not itemUrl.startswith("http")):
            return JsonResponse(common.build_result(CLIENT_ERROR, "缺少参数"),
                                safe=False)

    col_qr = Collect.objects.filter(authorId=r_userid).filter(itemId=itemId)
    if len(col_qr) > 0:
        return JsonResponse(common.build_result(CLIENT_ERROR, "已收藏过"),
                            safe=False)
    # 博客收藏
    if type == "0":
        b_qr = MicroBlog.objects.filter(blogId=itemId)
        if len(b_qr) == 0:
            return JsonResponse(common.build_result(CLIENT_ERROR, "该博客不存在"),
                                safe=False)
        Collect(itemId=itemId,
                authorId=r_userid,
                itemTitle=b_qr[0].title,
                linkUrl="",
                coverImg=b_qr[0].icon,
                colType=Collect.BLOG,
                isLargeIcon=b_qr[0].isLargeIcon).save()
        return JsonResponse(common.build_result(SUCCESS, "success"),
                            safe=False)
    # 其它收藏
    else:
        Collect(itemId=itemId,
                authorId=r_userid,
                itemTitle=itemTitle,
                linkUrl=itemUrl,
                coverImg=coverImg,
                colType=Collect.NEWS if
                (type == "1") else Collect.MUSIC).save()
        return JsonResponse(common.build_result(SUCCESS, "success"),
                            safe=False)
    return JsonResponse(common.build_result(CLIENT_ERROR, "没有更多数据"),
                        safe=False)
Beispiel #12
0
def get_blog(request, blog_id):
    r_userid = request.META.get("HTTP_USERID")
    qr = MicroBlog.objects.filter(blogId=blog_id)
    if len(qr) == 0:
        return JsonResponse(common.build_result(NO_RESOURCE, "博客不存在"), safe=False)
    blog = qr[0]
    if len(Pride.objects.filter(authorId=r_userid).filter(blogId=blog_id)) > 0:
        blog.isPrided = MicroBlog.HAVE
    if len(Collect.objects.filter(authorId=r_userid).filter(itemId=blog_id)) > 0:
        blog.isCollected = MicroBlog.HAVE
    return JsonResponse(common.build_model_data(blog), safe=False)
def allusers(request):
    if request.method == 'POST':
        admintoken = request.POST.get("admintoken", '0')
        pageNum = request.POST.get("page", '1')
        if admintoken == "I am cysion":
            qr = User.objects.all()
            pt = paginator.Paginator(qr, 10)
            pages = pt.page(pageNum)
            return JsonResponse(common.build_model_list(pages), safe=False)
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)
Beispiel #14
0
def del_blog(request):
    if request.method == 'POST':
        params = request.POST
        r_userid = request.META.get("HTTP_USERID")
        r_blogid = request.POST.get("blogId", '')
        qr = User.objects.filter(userId=r_userid)
        if not qr.exists():
            return JsonResponse(common.build_result(NO_AUTH, NO_THIS_USER), safe=False)
        if r_userid != qr[0].userId:
            return JsonResponse(common.build_result(SERVER_ERROR, SERVER_ERROR_MSG), safe=False)
        mqr = MicroBlog.objects.filter(blogId=r_blogid)
        if not mqr.exists():
            return JsonResponse(common.build_result(NO_RESOURCE, "博客不存在"), safe=False)
        blog = mqr[0]
        if blog.authorId != r_userid:
            return JsonResponse(common.build_result(FATAL_WORK, "无权删除该博客"), safe=False)
        blog.delete()
        # 删除点赞
        Pride.objects.filter(blogId=r_blogid).delete()
        # 删除收藏
        Collect.objects.filter(itemId=r_blogid).delete()
        # 删除评论
        Comment.objects.filter(parentId=r_blogid).delete()
        return JsonResponse(common.build_result(SUCCESS, "success"))
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD), safe=False)
def login(request):
    if request.method == 'POST':
        rusername = request.POST.get("username", '0')
        rpwd = request.POST.get("password", '0')
        client = request.POST.get("client", 'app')
        if len(rusername) < 3 or len(rpwd) < 3:
            return JsonResponse(common.build_result(CLIENT_ERROR, "用户名或密码太短"),
                                safe=False)
        if re.match("^[0-9a-zA-Z_]{1,}$", rusername) is None:
            return JsonResponse(common.build_result(CLIENT_ERROR, "用户名不规范"),
                                safe=False)
        qr = User.objects.filter(name=rusername)
        if len(qr) == 0:
            return JsonResponse(common.build_result(CLIENT_ERROR,
                                                    NO_THIS_USER),
                                safe=False)
        u = qr.first()
        if not isinstance(u, User):
            return JsonResponse(common.build_result(NO_RESOURCE, NO_THIS_USER),
                                safe=False)
        # 通过盐和传来的密码,算出存储的密码
        isalt = u.salt
        ipwd = hashlib.md5(
            ("%d-%s" % (isalt, rpwd)).encode(encoding='UTF-8')).hexdigest()
        if u.pwd != ipwd:
            return JsonResponse(common.build_result(NO_AUTH, "密码错误"),
                                safe=False)
        u.token = common.create_token(u.userId, u.pwd, client)
        u.save()
        return JsonResponse(common.build_model_data(u), safe=False)
    return JsonResponse(common.build_result(CLIENT_ERROR, ERROR_REQ_METHOD),
                        safe=False)