Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6c5d18f

Browse files
committed
抓取支持覆盖
1 parent b448238 commit 6c5d18f

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/logic/article.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (self ArticleLogic) ParseArticle(ctx context.Context, articleUrl string, au
5656

5757
tmpArticle := &model.Article{}
5858
_, err := MasterDB.Where("url=?", articleUrl).Get(tmpArticle)
59-
if err != nil || tmpArticle.Id != 0 {
59+
if err != nil || (tmpArticle.Id != 0 && auto) {
6060
logger.Infoln(articleUrl, "has exists:", err)
6161
return nil, errors.New("has exists!")
6262
}
@@ -79,7 +79,7 @@ func (self ArticleLogic) ParseArticle(ctx context.Context, articleUrl string, au
7979
}
8080

8181
if rule.Id == 0 {
82-
return self.ParseArticleByAccuracy(articleUrl)
82+
return self.ParseArticleByAccuracy(articleUrl, tmpArticle, auto)
8383
}
8484

8585
// 知乎特殊处理
@@ -222,6 +222,15 @@ func (self ArticleLogic) ParseArticle(ctx context.Context, articleUrl string, au
222222
}
223223
}
224224

225+
if !auto && tmpArticle.Id > 0 {
226+
_, err = MasterDB.Id(tmpArticle.Id).Update(article)
227+
if err != nil {
228+
logger.Errorln("upadate article error:", err)
229+
return nil, err
230+
}
231+
return article, nil
232+
}
233+
225234
_, err = MasterDB.Insert(article)
226235
if err != nil {
227236
logger.Errorln("insert article error:", err)

src/logic/html2article.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
"github.com/sundy-li/html2article"
1919
)
2020

21-
func (self ArticleLogic) ParseArticleByAccuracy(articleUrl string) (*model.Article, error) {
21+
func (self ArticleLogic) ParseArticleByAccuracy(articleUrl string, tmpArticle *model.Article, auto bool) (*model.Article, error) {
2222
htmlArticle, err := html2article.FromUrl(articleUrl)
2323
if err != nil {
2424
logger.Errorln("html2article from url:", articleUrl, "error:", err)
@@ -61,6 +61,15 @@ func (self ArticleLogic) ParseArticleByAccuracy(articleUrl string) (*model.Artic
6161
Url: articleUrl,
6262
}
6363

64+
if !auto && tmpArticle.Id > 0 {
65+
_, err = MasterDB.Id(tmpArticle.Id).Update(article)
66+
if err != nil {
67+
logger.Errorln("upadate article error:", err)
68+
return nil, err
69+
}
70+
return article, nil
71+
}
72+
6473
_, err = MasterDB.Insert(article)
6574
if err != nil {
6675
logger.Errorln("insert article error:", err)

0 commit comments

Comments
 (0)