Browse Source

去除列表接口的图片标签

ziwen 1 year ago
parent
commit
dee676f0df
3 changed files with 40 additions and 0 deletions
  1. 3 0
      controllers/research.go
  2. 16 0
      controllers/yanxuan_special.go
  3. 21 0
      utils/common.go

+ 3 - 0
controllers/research.go

@@ -165,6 +165,9 @@ func (this *MobileResearchController) ArticleNewList() {
 			SpecialColumnId: v.SpecialColumnId,
 		}
 		if v.IsSpecial == 1 {
+			//去除图片标签
+			v.Annotation = utils.ArticleRemoveImgUrl(v.Annotation)
+
 			item.IsSpecial = true
 			item.ImgUrlPc = utils.CYGX_YANXUAN_SPECIAL_IMG_PC
 			if v.CompanyTags != "" {

+ 16 - 0
controllers/yanxuan_special.go

@@ -64,6 +64,22 @@ func (this *YanxuanSpecialNoLoginController) 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

@@ -785,4 +785,25 @@ func ArticleHasImgUrl(body string) (hasImg bool, err error) {
 		hasImg = 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
 }