import datetime
import math
import random

from django.http import JsonResponse, HttpResponseRedirect
from django.utils import timezone

from blog import models
from system.error.ServerException import ServerException






def get_very_code(request):
    very_num = random.randint(1, 100)
    request.session['very_num'] = very_num
    return JsonResponse({"success": True, "data": very_num})


def add_comment(request):
    if request.method == 'POST':
        nick_name = request.POST.get("nick_name")
        avatar = request.POST.get("avatar")
        website = request.POST.get("website")
        article_id = request.POST.get("article_id")
        article_title = request.POST.get("article_title")
        comment = request.POST.get('comment')
        email = request.POST.get('email')
        veryCode = request.POST.get('veryCode')
        try:
            veryCode = int(veryCode)
            if request.session['very_num'] != veryCode:
                request.session['msg'] = "验证码不正确"
                return HttpResponseRedirect('/article/' + article_title + '.html')
        except Exception as e:
            request.session['msg'] = "验证码不正确"
            return HttpResponseRedirect('/article/' + article_title + '.html')

        article = models.Article.objects.get(id=int(article_id))
        if article is None:
            return JsonResponse({"success": False, "message": "没有找到对应文章"}, safe=False)

        def is_empty(val):
            return val is None or val == ''

        if is_empty(nick_name):
            request.session['msg'] = "请填写昵称"
            return HttpResponseRedirect('/article/' + article_title + '.html')  # 跳转到主界面

        if is_empty(comment):
            request.session['msg'] = "请填写评论内容"
            return HttpResponseRedirect('/article/' + article_title + '.html')  # 跳转到主界面

        if is_empty(email):
            request.session['msg'] = "请填写Email"
            return HttpResponseRedirect('/article/' + article_title + '.html')  # 跳转到主界面
        now_utc = timezone.now()  # aware UTC 时间
        # ① 如果你想要 UTC+8:
        beijing_time = now_utc + datetime.timedelta(hours=8)
        request.session['msg'] = ""
        models.Comment.objects.create(nick_name=nick_name, avatar=avatar, article=article,
                                                    website=website,
                                                    comment=comment,
                                                    created_time=beijing_time, email=email)
        return HttpResponseRedirect('/article/' + article_title + '.html')  # 跳转到主界面

    else:
        raise ServerException("错误的请求")