Ejemplo n.º 1
0
    def patch(self, request, *args, **kwargs):
        # 获取请求数据,并生成对应slug
        stock_name = request.data["name"].strip(" ").strip("\r").strip("\n").strip("\t")
        stock_tag = request.data["tag"].strip(" ").strip("\r").strip("\n").strip("\t")
        stock_desc = request.data["describe"]
        stock_slug = request.data["slug"]
        stock_author_slug = request.COOKIES.get("slug")
        
        log.info("Stock {}-{} Patch Request ".format(stock_slug, stock_name))
        # 先检查用户是不是注册用户,可能有爬虫程序之类的
        try:
            User.objects.get(slug=stock_author_slug)
        except ObjectDoesNotExist:
            log.warn("User {} Maybe Use Script To Operate Our Site ".format(stock_author_slug))
            return JsonResponse({"errorCode":random.random()}, safe=False, status=200) 
        
        # 之后检查新建的知识库是否与之前的重复
        try:
            stock = Stock.objects.get(slug=stock_slug)
            stock.name = stock_name
            stock.tag = stock_tag
            stock.describe = stock_desc
            if request.data.get("cover", "") != "": stock.cover = request.data["cover"]

            stock.save()
            log.info("Stock {}-{} Parse Success".format(stock_slug, stock_name))

        except ObjectDoesNotExist:
            log.warn("Stock {} Is Not In Database So We Return Error ".format(stock_slug))
            return JsonResponse({"errorCode":1, "desc":"知识库不存在,无法更新"}, safe=False, status=200)


        return JsonResponse({"errorCode":0, "desc":"更新成功"}, safe=False, status=200)
Ejemplo n.º 2
0
    def get(self, request, *args, **kwargs):
        # 用于用户的登陆验证
        email = request.GET.get("email", "")
        password = request.GET.get("password", "")

        try:
            user_info = User.objects.get(email=email, password=md5(password))
            content = UserSerializer(user_info).data
            content["errorCode"] = 0
            log.info("Email : {} Request Login In Success".format(email))
            return JsonResponse(content, status=200)

        except ObjectDoesNotExist:
            log.info("Email : {} , password : {}, Request Login In Error".format(email, password))
            return JsonResponse({"errorCode": 1, "desc":"诶呀!! 不明入侵者!!"}, status=200)        
Ejemplo n.º 3
0
    def get(self, request, *args, **kwargs):
        email = request.GET.get("email", "")
        log.info("Email: {} Acquire Sign Up Random Code".format(email))
        try:
            User.objects.get(email=email)
            log.info("Email: {} Has Already Sign Up".format(email))
            return JsonResponse({"errorCode": 1, "desc": "欸? 这个邮箱已经注册过啦"}, status=200)

        except ObjectDoesNotExist:
            if is_email(email): 
                redis_conn = get_redis_connection("default")

                # 先检查之前有没有发过
                remain_time = redis_conn.ttl(email)
                if remain_time <= 0:
                    pQueueManager.push("SendEmailCodeQueue", email)
                    return JsonResponse({"errorCode": 0, "desc": "验证码已经上路~~"}, status=200)
                else:
                    return JsonResponse({"errorCode": 1, "desc": "拜托..验证码已经发过啦, {} 秒后再来呗".format(remain_time)}, status=200)

            return JsonResponse({"errorCode": 1, "desc": "诶..邮箱格式好像不对, 检查一下呗"}, status=200)
Ejemplo n.º 4
0
    def post(self, request, *args, **kwargs):
        # 获取请求数据,并生成对应slug
        stock_name = request.data["name"].strip(" ").strip("\r").strip("\n").strip("\t")
        stock_tag = request.data["tag"].strip(" ").strip("\r").strip("\n").strip("\t")
        stock_cover = request.data["cover"]
        stock_desc = request.data["describe"]
        stock_author_slug = request.COOKIES.get("slug")
        stock_author = None
        stock_upgrade_date = time.strftime("%Y-%m-%d", time.localtime())
        stock_slug = generate_slug("Stock", "{}".format(stock_name))
        
        log.info("Stock {}-{} Parse Begin ".format(stock_slug, stock_name))
        # 先检查用户是不是注册用户,可能有爬虫程序之类的
        try:
            stock_author = User.objects.get(slug=stock_author_slug)
        except ObjectDoesNotExist:
            log.warn("User {} Maybe Use Script To Operate Our Site ".format(stock_author_slug))
            return JsonResponse({"errorCode":random.random()}, safe=False, status=200) 
        
        # 之后检查新建的知识库是否与之前的重复
        try:
            Stock.objects.get(slug=stock_slug)
            log.warn("Stock {} Is Already In Database So We Return Error ".format(stock_slug))
            return JsonResponse({"errorCode":1, "desc":"知识库名称重复"}, safe=False, status=200)

        except ObjectDoesNotExist:
            stock = Stock()
            stock.name = stock_name
            stock.author = stock_author
            stock.slug = stock_slug
            stock.upgrade_date = stock_upgrade_date
            stock.cover = stock_cover
            stock.tag = stock_tag
            stock.describe = stock_desc
            stock.save()

            log.info("Stock {}-{} Parse Success".format(stock_slug, stock_name))

            return JsonResponse({"errorCode":0, "desc":"创建成功,前往我的知识库查看或扩展内容"}, safe=False, status=200)
Ejemplo n.º 5
0
    def post(self, request, *args, **kwargs):
        # 用于用户的注册请求
        email = request.POST.get("email", "")

        try:
            user_info = User.objects.get(email=email)
            log.info("Email : {} Request Sign Up Failed, Because Signed Already".format(email))
            return JsonResponse({"errorCode": 1, "desc": "欸? 这个邮箱已经注册过啦"}, status=200)

        except ObjectDoesNotExist:
            user = UserSerializer(data=request.POST)
            
            if user.is_valid():
                # 这里将信息保存后,还要将信息返回,为了将页面切换到登录状态
                user.save()
                content = UserSerializer(User.objects.get(email=email)).data
                content["errorCode"] = 0
                log.info("Email : {} Request Sign Up Success".format(email))
                return JsonResponse(content, status=200)

            else:
                log.info("Email : {} Request Sign Up Failed Because Of {}".format(email, user.errors))
                return JsonResponse({"errorCode": 1, "desc": "由于宇宙射线原因, 本次注册失败了, 请等管理员修复..."}, status=200)
Ejemplo n.º 6
0
 def post(self, request, *args, **kwargs):
     # 获取头部中的消息,并打印在日志中
     message = request.POST.get("message", "")
     log.info("[ ReminderInfo ] We Receive A Message : {}".format(message))
     return JsonResponse({"errorCode": 0, "desc": "感谢你的留言"}, status=200)
Ejemplo n.º 7
0
 def stat(self):
     log.info(
         "[ ProcessQueue ] Queue {} Routine Report , Current Size: {}, Done Size: {}"
         .format(self.queue_name, self.queue_name.qsize(), self.done_count))