♻️ Save news article to db seprately

This commit is contained in:
LittleSheep 2025-01-26 01:00:59 +08:00
parent fbbe72bd54
commit 2a58d185eb

View File

@ -31,7 +31,7 @@ func ScanNewsSourcesNoEager() {
} }
func ScanNewsSources(eager ...bool) { func ScanNewsSources(eager ...bool) {
var results []models.NewsArticle count := 0
for _, src := range NewsSources { for _, src := range NewsSources {
if !src.Enabled { if !src.Enabled {
continue continue
@ -42,18 +42,19 @@ func ScanNewsSources(eager ...bool) {
if err != nil { if err != nil {
log.Warn().Err(err).Str("source", src.ID).Msg("Failed to scan a news source.") log.Warn().Err(err).Str("source", src.ID).Msg("Failed to scan a news source.")
} }
results = append(results, result...)
result = lo.UniqBy(result, func(item models.NewsArticle) string {
return item.Hash
})
database.C.Clauses(clause.OnConflict{
UpdateAll: true,
}).Create(&result)
log.Info().Str("source", src.ID).Int("count", len(result)).Msg("Scanned a news sources.") log.Info().Str("source", src.ID).Int("count", len(result)).Msg("Scanned a news sources.")
count += len(result)
} }
log.Info().Int("count", len(results)).Msg("Scanned all news sources.")
results = lo.UniqBy(results, func(item models.NewsArticle) string { log.Info().Int("count", count).Msg("Scanned all news sources.")
return item.Hash
})
database.C.Clauses(clause.OnConflict{
UpdateAll: true,
}).Create(&results)
} }
func NewsSourceRead(src models.NewsSource, eager ...bool) ([]models.NewsArticle, error) { func NewsSourceRead(src models.NewsSource, eager ...bool) ([]models.NewsArticle, error) {