feat(sdk): broaden goView iframe/video import support

This commit is contained in:
clawdbot 2026-01-28 18:32:29 +08:00
parent 3d9154baf7
commit 9ac5bbaa09
2 changed files with 25 additions and 2 deletions

View File

@ -14,6 +14,10 @@ export interface GoViewIframeOption {
iframeUrl?: unknown;
iframeSrc?: unknown;
embedUrl?: unknown;
frameUrl?: unknown;
frameSrc?: unknown;
webUrl?: unknown;
webpageUrl?: unknown;
// list-ish shapes (some low-code editors model embeds as a list even for a single item)
sources?: unknown;
@ -133,7 +137,15 @@ function pickFirstUrlFromList(input: unknown): string {
function pickSrc(option: GoViewIframeOption): string {
// 1) Prefer explicit iframe-ish URL fields.
const url =
pickUrlLike({ iframeUrl: option.iframeUrl, iframeSrc: option.iframeSrc, embedUrl: option.embedUrl }) ||
pickUrlLike({
iframeUrl: option.iframeUrl,
iframeSrc: option.iframeSrc,
embedUrl: option.embedUrl,
frameUrl: option.frameUrl,
frameSrc: option.frameSrc,
webUrl: option.webUrl,
webpageUrl: option.webpageUrl,
}) ||
pickUrlLike(option) ||
pickUrlLike(option.dataset) ||
pickUrlLike(option.src) ||

View File

@ -10,6 +10,10 @@ export interface GoViewVideoOption {
src?: unknown;
url?: unknown;
// seen in some forks
srcUrl?: unknown;
sourceUrl?: unknown;
// common alternative shapes
sources?: unknown;
sourceList?: unknown;
@ -208,6 +212,8 @@ function pickSrc(option: GoViewVideoOption): string {
// generic fallbacks
'src',
'url',
'srcUrl',
'sourceUrl',
'value',
// sometimes low-code exports store <video> HTML under these fields
'html',
@ -239,7 +245,12 @@ function pickSrc(option: GoViewVideoOption): string {
if (fromList) return normalizeSrcMaybeFromHtml(fromList);
// Last resort: permissive URL-like picking across option/dataset/src/url.
const raw = pickUrlLike(option) || pickUrlLike(option.dataset) || pickUrlLike(option.src) || pickUrlLike(option.url);
const raw =
pickUrlLike({ srcUrl: option.srcUrl, sourceUrl: option.sourceUrl }) ||
pickUrlLike(option) ||
pickUrlLike(option.dataset) ||
pickUrlLike(option.src) ||
pickUrlLike(option.url);
return normalizeSrcMaybeFromHtml(raw);
}