report.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package services
  2. import (
  3. "fmt"
  4. "github.com/PuerkitoBio/goquery"
  5. "hongze/hongze_task/models"
  6. "hongze/hongze_task/utils"
  7. "html"
  8. "strings"
  9. )
  10. func FixReportContentSub() {
  11. items, err := models.GetReport()
  12. if err != nil {
  13. fmt.Println("err:", err.Error())
  14. return
  15. }
  16. for k, v := range items {
  17. fmt.Println(k, v.Id, v.ContentSub)
  18. content := html.UnescapeString(v.Content)
  19. utils.FileLog.Info("%s", content)
  20. doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
  21. if err != nil {
  22. fmt.Println("create doc err:", err.Error())
  23. return
  24. }
  25. n := 0
  26. contentSub := ""
  27. doc.Find("p").Each(func(i int, s *goquery.Selection) {
  28. if n >= 5 {
  29. return
  30. }
  31. n++
  32. phtml, err := s.Html()
  33. if err != nil {
  34. fmt.Println("get html err", err.Error())
  35. return
  36. }
  37. if s.Text() != "" || strings.Contains(phtml, "src") {
  38. contentSub = contentSub + "<p>" + phtml + "</p>"
  39. utils.FileLog.Info("i:%d n:%d %s", i, n, contentSub)
  40. }
  41. })
  42. err = models.ModifyReportContentSub(v.Id, contentSub)
  43. if err != nil {
  44. fmt.Println("ModifyReportContentSub Err:" + err.Error())
  45. }
  46. }
  47. }
  48. //
  49. //func FixReportCount() {
  50. // var err error
  51. // defer func() {
  52. // if err != nil {
  53. // fmt.Println("err:", err.Error())
  54. // }
  55. // }()
  56. // list, err := models.GetReportLimit()
  57. // if err != nil {
  58. // return
  59. // }
  60. // for _, v := range list {
  61. // content := v.Content
  62. // contentHtml := html.UnescapeString(content)
  63. // doc, err := goquery.NewDocumentFromReader(strings.NewReader(contentHtml))
  64. // if err != nil {
  65. // fmt.Println("line 70:"+err.Error())
  66. // return
  67. // }
  68. // isModify := false
  69. // doc.Find("img").Each(func(i int, img *goquery.Selection) {
  70. // imgContent, srcExist := img.Attr("src")
  71. // if srcExist {
  72. // if strings.Contains(imgContent, "data:image/png;base64,") {
  73. // contentBase64 := imgContent
  74. // contentBase64 = strings.Replace(contentBase64, "data:image/png;base64,", "", -1)
  75. // dateDir := time.Now().Format("20060102")
  76. // uploadDir := "./" + dateDir
  77. // err = os.MkdirAll(uploadDir, 777)
  78. // if err != nil {
  79. // return
  80. // }
  81. // randStr := utils.GetRandStringNoSpecialChar(28)
  82. // fileName := randStr + ".png"
  83. // fpath := uploadDir + "/" + fileName
  84. // utils.SaveBase64ToFile(contentBase64, fpath)
  85. // if err != nil {
  86. // return
  87. // }
  88. // //上传到阿里云
  89. // resourceUrl, err := services.UploadAliyun(fileName, fpath)
  90. // if err != nil {
  91. // return
  92. // }
  93. // img.SetAttr("src", resourceUrl)
  94. // isModify = true
  95. // }
  96. // }
  97. // })
  98. // contentHtml, _ = doc.Html()
  99. // fmt.Println(contentHtml)
  100. // fmt.Println("isModify", isModify)
  101. // if isModify {
  102. // contentHtml, _ = doc.Html()
  103. // contentSub, err := services.GetReportContentSub(contentHtml)
  104. // if err != nil {
  105. // utils.SendEmail(utils.APPNAME+"失败提醒", "解析 ContentSub 失败,Err:"+err.Error(), utils.EmailSendToUsers)
  106. // }
  107. // contentHtml = html.EscapeString(contentHtml)
  108. // contentSub = html.EscapeString(contentSub)
  109. // err = models.EditReportContent(v.Id, contentHtml, contentSub)
  110. // }
  111. // }
  112. //}