report.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. }