fix(feishu): skip API fallback for non-thread messages, prepend replied media refs
- resolveReplyTargetMessageID: only call fetchMessageByID fallback when ThreadId is set, avoiding unnecessary API calls for non-reply messages - prependReplyContext: prepend replied media refs before current media refs to maintain correct ordering
This commit is contained in:
parent
4b47541c87
commit
a149761022
1 changed files with 8 additions and 1 deletions
|
|
@ -71,7 +71,7 @@ func (c *FeishuChannel) prependReplyContext(
|
||||||
|
|
||||||
repliedContent := normalizeRepliedContent(messageType, rawContent, repliedMediaRefs)
|
repliedContent := normalizeRepliedContent(messageType, rawContent, repliedMediaRefs)
|
||||||
if len(repliedMediaRefs) > 0 {
|
if len(repliedMediaRefs) > 0 {
|
||||||
mediaRefs = append(mediaRefs, repliedMediaRefs...)
|
mediaRefs = append(repliedMediaRefs, mediaRefs...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return formatReplyContext(targetMessageID, repliedContent, content), mediaRefs
|
return formatReplyContext(targetMessageID, repliedContent, content), mediaRefs
|
||||||
|
|
@ -93,6 +93,13 @@ func (c *FeishuChannel) resolveReplyTargetMessageID(ctx context.Context, message
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stringValue(message.ThreadId) == "" {
|
||||||
|
logger.DebugCF("feishu", "No reply target found; message is not in a thread", map[string]any{
|
||||||
|
"message_id": stringValue(message.MessageId),
|
||||||
|
})
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
msg, err := c.fetchMessageByID(ctx, currentMessageID)
|
msg, err := c.fetchMessageByID(ctx, currentMessageID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.DebugCF("feishu", "Failed to query current message detail for reply info", map[string]any{
|
logger.DebugCF("feishu", "Failed to query current message detail for reply info", map[string]any{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue