claw-subagent-service 0.0.119 → 0.0.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -633,11 +633,37 @@ class MessageHandler {
|
|
|
633
633
|
sightUrl = content.sightUrl || content.url || '';
|
|
634
634
|
name = content.name || '未知视频';
|
|
635
635
|
duration = content.duration || 0;
|
|
636
|
+
} else if (typeof content === 'string') {
|
|
637
|
+
// 尝试解析 content 是否为 JSON(包含 sightUrl)
|
|
638
|
+
try {
|
|
639
|
+
const contentObj = JSON.parse(content);
|
|
640
|
+
if (contentObj.sightUrl) {
|
|
641
|
+
sightUrl = contentObj.sightUrl;
|
|
642
|
+
}
|
|
643
|
+
} catch (e) {
|
|
644
|
+
// content 不是 JSON,可能是 base64 缩略图
|
|
645
|
+
sightUrl = msg.sightUrl || msg.url || msg.localPath || '';
|
|
646
|
+
}
|
|
636
647
|
} else {
|
|
637
648
|
sightUrl = msg.sightUrl || msg.url || msg.localPath || '';
|
|
638
649
|
}
|
|
639
650
|
|
|
651
|
+
// 如果还是没有找到 URL,尝试从 extra 字段获取
|
|
652
|
+
if (!sightUrl && msg.extra) {
|
|
653
|
+
try {
|
|
654
|
+
const extraData = JSON.parse(msg.extra);
|
|
655
|
+
sightUrl = extraData.videoUrl || extraData.sightUrl || '';
|
|
656
|
+
} catch (e) {
|
|
657
|
+
// extra 不是 JSON,忽略
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
|
|
640
661
|
this.log?.info(`[_extractMessageContent] 视频消息: sightUrl=${sightUrl}`);
|
|
662
|
+
|
|
663
|
+
if (!sightUrl) {
|
|
664
|
+
return '[视频](无法获取视频地址)';
|
|
665
|
+
}
|
|
666
|
+
|
|
641
667
|
return `[视频] ${sightUrl} ${name} ${duration}秒`;
|
|
642
668
|
}
|
|
643
669
|
|
|
@@ -651,11 +677,37 @@ class MessageHandler {
|
|
|
651
677
|
fileUrl = content.fileUrl || content.fileUri || content.url || '';
|
|
652
678
|
name = content.name || '未知文件';
|
|
653
679
|
size = content.size || 0;
|
|
680
|
+
} else if (typeof content === 'string') {
|
|
681
|
+
// 尝试解析 content 是否为 JSON(包含 fileUrl)
|
|
682
|
+
try {
|
|
683
|
+
const contentObj = JSON.parse(content);
|
|
684
|
+
if (contentObj.fileUrl) {
|
|
685
|
+
fileUrl = contentObj.fileUrl;
|
|
686
|
+
}
|
|
687
|
+
} catch (e) {
|
|
688
|
+
// content 不是 JSON
|
|
689
|
+
fileUrl = msg.fileUrl || msg.fileUri || msg.url || msg.localPath || '';
|
|
690
|
+
}
|
|
654
691
|
} else {
|
|
655
692
|
fileUrl = msg.fileUrl || msg.fileUri || msg.url || msg.localPath || '';
|
|
656
693
|
}
|
|
657
694
|
|
|
695
|
+
// 如果还是没有找到 URL,尝试从 extra 字段获取
|
|
696
|
+
if (!fileUrl && msg.extra) {
|
|
697
|
+
try {
|
|
698
|
+
const extraData = JSON.parse(msg.extra);
|
|
699
|
+
fileUrl = extraData.fileUrl || extraData.fileUri || '';
|
|
700
|
+
} catch (e) {
|
|
701
|
+
// extra 不是 JSON,忽略
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
|
|
658
705
|
this.log?.info(`[_extractMessageContent] 文件消息: fileUrl=${fileUrl}`);
|
|
706
|
+
|
|
707
|
+
if (!fileUrl) {
|
|
708
|
+
return '[文件](无法获取文件地址)';
|
|
709
|
+
}
|
|
710
|
+
|
|
659
711
|
return `[文件] ${fileUrl} ${name} ${size}`;
|
|
660
712
|
}
|
|
661
713
|
|