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)
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)
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)
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)
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)
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)
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)
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)