package services

import (
	"fmt"
	"github.com/PuerkitoBio/goquery"
	"hongze/hongze_task/models"
	"hongze/hongze_task/utils"
	"html"
	"strings"
)

func FixReportContentSub() {
	items, err := models.GetReport()
	if err != nil {
		fmt.Println("err:", err.Error())
		return
	}
	for k, v := range items {
		fmt.Println(k, v.Id, v.ContentSub)
		content := html.UnescapeString(v.Content)
		utils.FileLog.Info("%s", content)
		doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
		if err != nil {
			fmt.Println("create doc err:", err.Error())
			return
		}
		n := 0
		contentSub := ""
		doc.Find("p").Each(func(i int, s *goquery.Selection) {
			if n >= 5 {
				return
			}
			n++
			phtml, err := s.Html()
			if err != nil {
				fmt.Println("get html err", err.Error())
				return
			}
			if s.Text() != "" || strings.Contains(phtml, "src") {
				contentSub = contentSub + "<p>" + phtml + "</p>"
				utils.FileLog.Info("i:%d n:%d %s", i, n, contentSub)
			}
		})
		err = models.ModifyReportContentSub(v.Id, contentSub)
		if err != nil {
			fmt.Println("ModifyReportContentSub Err:" + err.Error())
		}
	}
}
//
//func FixReportCount() {
//	var err error
//	defer func() {
//		if err != nil {
//			fmt.Println("err:", err.Error())
//		}
//	}()
//	list, err := models.GetReportLimit()
//	if err != nil {
//		return
//	}
//	for _, v := range list {
//		content := v.Content
//		contentHtml := html.UnescapeString(content)
//		doc, err := goquery.NewDocumentFromReader(strings.NewReader(contentHtml))
//		if err != nil {
//			fmt.Println("line 70:"+err.Error())
//			return
//		}
//		isModify := false
//		doc.Find("img").Each(func(i int, img *goquery.Selection) {
//			imgContent, srcExist := img.Attr("src")
//			if srcExist {
//				if strings.Contains(imgContent, "data:image/png;base64,") {
//					contentBase64 := imgContent
//					contentBase64 = strings.Replace(contentBase64, "data:image/png;base64,", "", -1)
//					dateDir := time.Now().Format("20060102")
//					uploadDir := "./" + dateDir
//					err = os.MkdirAll(uploadDir, 777)
//					if err != nil {
//						return
//					}
//					randStr := utils.GetRandStringNoSpecialChar(28)
//					fileName := randStr + ".png"
//					fpath := uploadDir + "/" + fileName
//					utils.SaveBase64ToFile(contentBase64, fpath)
//					if err != nil {
//						return
//					}
//					//上传到阿里云
//					resourceUrl, err := services.UploadAliyun(fileName, fpath)
//					if err != nil {
//						return
//					}
//					img.SetAttr("src", resourceUrl)
//					isModify = true
//				}
//			}
//		})
//		contentHtml, _ = doc.Html()
//		fmt.Println(contentHtml)
//		fmt.Println("isModify", isModify)
//		if isModify {
//			contentHtml, _ = doc.Html()
//			contentSub, err := services.GetReportContentSub(contentHtml)
//			if err != nil {
//				utils.SendEmail(utils.APPNAME+"失败提醒", "解析 ContentSub 失败，Err:"+err.Error(), utils.EmailSendToUsers)
//			}
//			contentHtml = html.EscapeString(contentHtml)
//			contentSub = html.EscapeString(contentSub)
//			err = models.EditReportContent(v.Id, contentHtml, contentSub)
//		}
//	}
//}

func DeleteReportSaveLog()(err error) {
	fmt.Println("start")
	models.DeleteReportSaveLog()
	fmt.Println("end")
	return
}