fix(feishu): keep interactive card content as valid JSON
This commit is contained in:
parent
00b05ed043
commit
b35379087e
1 changed files with 6 additions and 10 deletions
|
|
@ -373,22 +373,18 @@ func (c *FeishuChannel) handleMessageReceive(ctx context.Context, event *larkim.
|
||||||
mediaRefs = c.downloadInboundMedia(ctx, chatID, messageID, messageType, rawContent, store)
|
mediaRefs = c.downloadInboundMedia(ctx, chatID, messageID, messageType, rawContent, store)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Append media tags to content (like Telegram does)
|
// For interactive cards, pass external image URLs via media refs.
|
||||||
content = appendMediaTags(content, messageType, mediaRefs)
|
// Keep content as valid raw JSON for downstream parsing.
|
||||||
|
|
||||||
// For interactive cards, append external image URLs directly for LLM
|
|
||||||
if messageType == larkim.MsgTypeInteractive {
|
if messageType == larkim.MsgTypeInteractive {
|
||||||
_, externalURLs := extractCardImageKeys(rawContent)
|
_, externalURLs := extractCardImageKeys(rawContent)
|
||||||
if len(externalURLs) > 0 {
|
if len(externalURLs) > 0 {
|
||||||
urlTags := "\n[external images:"
|
mediaRefs = append(mediaRefs, externalURLs...)
|
||||||
for _, u := range externalURLs {
|
|
||||||
urlTags += " " + u
|
|
||||||
}
|
|
||||||
urlTags += "]"
|
|
||||||
content += urlTags
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Append media tags to content (like Telegram does)
|
||||||
|
content = appendMediaTags(content, messageType, mediaRefs)
|
||||||
|
|
||||||
if content == "" {
|
if content == "" {
|
||||||
content = "[empty message]"
|
content = "[empty message]"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue