Browse Source

Merge branch 'cygx_12.0' into debug

ziwen 1 year ago
parent
commit
a441908b6d
2 changed files with 36 additions and 0 deletions
  1. 15 0
      controllers/yanxuan_special.go
  2. 21 0
      utils/common.go

+ 15 - 0
controllers/yanxuan_special.go

@@ -65,6 +65,21 @@ func (this *YanxuanSpecialController) List() {
 		return
 	}
 	for _, v := range list {
+		//如果正文中包含图片就拿出来放到图片字段中
+		imgUrls, err := utils.FindArticleImgUrls(v.Content)
+		if err != nil {
+			return
+		}
+		for _, url := range imgUrls {
+			if v.ImgUrl != "" {
+				v.ImgUrl += "," +url
+			} else {
+				v.ImgUrl += url + ","
+			}
+		}
+		v.ImgUrl = strings.TrimRight(v.ImgUrl, ",")
+		//去除图片标签
+		v.Content = utils.ArticleRemoveImgUrl(v.Content)
 		hasImg, err := utils.ArticleHasImgUrl(v.Content)
 		if err != nil {
 			return

+ 21 - 0
utils/common.go

@@ -895,4 +895,25 @@ func ArticleHasStyle(body string) (hasStyle bool, err error) {
 		hasStyle = true
 	})
 	return
+}
+
+func ArticleRemoveImgUrl(body string) (result string){
+	// 使用正则表达式去除img标签
+	re := regexp.MustCompile(`<img[^>]*>`)
+	result = re.ReplaceAllString(body, "")
+
+	return
+}
+
+func FindArticleImgUrls(body string) (imgUrls []string, err error) {
+	r := strings.NewReader(string(body))
+	doc, err := goquery.NewDocumentFromReader(r)
+	if err != nil {
+		fmt.Println(err)
+	}
+	doc.Find("img").Each(func(i int, s *goquery.Selection) {
+		src, _ := s.Attr("src")
+		imgUrls = append(imgUrls, src)
+	})
+	return
 }