feat: add dataset item images

This commit is contained in:
2026-07-23 23:15:43 +08:00
parent fbd142803a
commit 56d96f23dd
9 changed files with 109 additions and 15 deletions

View File

@@ -60,6 +60,7 @@ type ItemInput struct {
Summary string
Content string
URL string
ImageURL string
PublishedAt *time.Time
}
@@ -293,10 +294,15 @@ func (s *Service) CreateItem(userID uint, input ItemInput) (*models.SaDatasetIte
if itemURL != "" && !validHTTPURL(itemURL) {
return nil, ErrURLInvalid
}
imageURL := strings.TrimSpace(input.ImageURL)
if imageURL != "" && !validHTTPURL(imageURL) {
return nil, ErrURLInvalid
}
item := &models.SaDatasetItem{
SourceID: source.ID, Title: title,
Summary: strings.TrimSpace(input.Summary), Content: strings.TrimSpace(input.Content),
URL: itemURL, Status: "unread", PublishedAt: utcOptionalTime(input.PublishedAt),
URL: itemURL, ImageURL: imageURL, Status: "unread",
PublishedAt: utcOptionalTime(input.PublishedAt),
}
return item, s.db.Create(item).Error
}
@@ -461,7 +467,8 @@ func storeFeedItems(tx *gorm.DB, source models.SaDatasetSource, items []FeedItem
item := models.SaDatasetItem{
SourceID: source.ID, ExternalID: &externalID,
Title: input.Title, Summary: input.Summary, Content: input.Content,
URL: input.URL, Status: "unread", PublishedAt: input.PublishedAt,
URL: input.URL, ImageURL: input.ImageURL,
Status: "unread", PublishedAt: input.PublishedAt,
}
result := tx.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "source_id"}, {Name: "external_id"}},