Răsfoiți Sursa

核心观点大于20个字,显示核心观点内容

xingzai 2 ani în urmă
părinte
comite
a425205e92
2 a modificat fișierele cu 35 adăugiri și 2 ștergeri
  1. 1 1
      controllers/home.go
  2. 34 1
      services/article.go

+ 1 - 1
controllers/home.go

@@ -523,7 +523,7 @@ func (this *HomeController) ListHomeArtAndChart() {
 			item := list[k]
 			//如果文章一开始的内容是图片,优先展示第一张图片
 			imgurl, _ := services.FixArticleImgUrl(html.UnescapeString(list[k].Body))
-			newBody, _ := services.GetReportContentTextSub(item.Body)
+			newBody, _ := services.GetReportContentTextSubByarticle(item.Body, item.Abstract, item.ArticleId)
 			list[k].Body = newBody
 			if imgurl != "" {
 				list[k].BodyHtml = imgurl

+ 34 - 1
services/article.go

@@ -13,6 +13,7 @@ import (
 	"strconv"
 	"strings"
 	"time"
+	"unicode/utf8"
 )
 
 func GetReportContentSub(content string) (contentSub string, err error) {
@@ -57,16 +58,48 @@ func GetReportContentTextSub(content string) (contentSub string, err error) {
 
 func GetReportContentTextSubNew(content string) (contentSub string, err error) {
 	content = html.UnescapeString(content)
-	doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
+	doc, errdoc := goquery.NewDocumentFromReader(strings.NewReader(content))
+	if errdoc != nil {
+		err = errdoc
+		return
+	}
 	docText := doc.Text()
 	bodyRune := []rune(docText)
 	bodyRuneLen := len(bodyRune)
 	body := string(bodyRune[:bodyRuneLen])
 	contentSub = body
 	contentSub = strings.Replace(body, "Powered by Froala Editor", "", -1)
+	contentSub = strings.Replace(body, " ", "", -1)
 	return
 }
 
+//GetReportContentTextSubByarticle 解析文章内容
+func GetReportContentTextSubByarticle(content, abstract string, articleId int) (contentSub string, err error) {
+	var lenabstract int
+	//如果不是研选就这么展示
+	if articleId < utils.SummaryArticleId {
+		abstract = html.UnescapeString(abstract)
+		doc, errdoc := goquery.NewDocumentFromReader(strings.NewReader(abstract))
+		if errdoc != nil {
+			err = errdoc
+			return
+		}
+		docabstract := doc.Text()
+		lenabstract = utf8.RuneCountInString(docabstract)
+		if lenabstract >= 20 {
+			contentSub = docabstract
+			return
+		} else {
+			contentSub, err = GetReportContentTextSubNew(content)
+		}
+	} else {
+		contentSub, err = GetReportContentTextSubNew(content)
+	}
+
+	return
+
+}
+
 //解析文章内容
 func GetArticleAll() {
 	var err error