feat(content): enhance ContentChunk structure with Provider and StorageKey fields

This commit is contained in:
mlogclub
2026-04-17 13:40:16 +08:00
parent 0037b97f29
commit 48564ec384
3 changed files with 32 additions and 21 deletions
+13 -6
View File
@@ -1,6 +1,7 @@
package utils
import (
"cs-agent/internal/pkg/enums"
"strings"
"golang.org/x/net/html"
@@ -14,9 +15,11 @@ const (
)
type ContentChunk struct {
Type ContentChunkType //
Content string // text content or image url
AssetID string // image asset id
Type ContentChunkType //
Content string // text content or image url
AssetID string // image asset id
Provider enums.AssetProvider // image provider
StorageKey string // image storage key
}
func SplitHTMLContentChunks(content string) ([]ContentChunk, error) {
@@ -59,13 +62,17 @@ func SplitHTMLContentChunks(content string) ([]ContentChunk, error) {
flushText()
src := strings.TrimSpace(findContentChunkHTMLAttr(node, "src"))
assetID := strings.TrimSpace(findContentChunkHTMLAttr(node, "data-asset-id"))
provider := enums.AssetProvider(strings.TrimSpace(findContentChunkHTMLAttr(node, "data-provider")))
storageKey := strings.TrimSpace(findContentChunkHTMLAttr(node, "data-storage-key"))
if src == "" && assetID == "" {
return
}
chunks = append(chunks, ContentChunk{
Type: ContentChunkTypeImage,
Content: src,
AssetID: assetID,
Type: ContentChunkTypeImage,
Content: src,
AssetID: assetID,
Provider: provider,
StorageKey: storageKey,
})
return
}
+7 -1
View File
@@ -1,6 +1,7 @@
package utils
import (
"cs-agent/internal/pkg/enums"
"reflect"
"testing"
)
@@ -55,7 +56,12 @@ func TestSplitHTMLContentChunks(t *testing.T) {
name: "image with asset metadata only",
content: `<p><img data-asset-id="asset_1" data-provider="local" data-storage-key="images/a.png" alt="a"></p>`,
want: []ContentChunk{
{Type: ContentChunkTypeImage, AssetID: "asset_1"},
{
Type: ContentChunkTypeImage,
AssetID: "asset_1",
Provider: enums.AssetProviderLocal,
StorageKey: "images/a.png",
},
},
},
{