MCPcopy Create free account
hub / github.com/scriptscat/scriptcat / loadURLAsync

Function loadURLAsync

src/pages/install/hooks.tsx:596–638  ·  view source on GitHub ↗
(url: string)

Source from the content-addressed store, hash-verified

594 });
595
596 const loadURLAsync = async (url: string) => {
597 const fetchValidScript = async () => {
598 const result = await fetchScriptBody(url, {
599 onProgress: (info: { receivedLength: number }) => {
600 setFetchingState((prev) => ({
601 ...prev,
602 loadingStatus: t("downloading_status_text", { bytes: formatBytes(info.receivedLength) }),
603 }));
604 },
605 });
606 if (result.code && result.metadata) {
607 return { result, url } as const;
608 }
609 throw new Error(t("install_page_load_failed"));
610 };
611
612 try {
613 const { result, url } = await fetchValidScript();
614 const { code, metadata } = result;
615 const isSkillScript = EnableAgent && "skillScript" in result && result.skillScript === true;
616
617 const uuid = uuidv4();
618 const scriptData = await createTempCodeEntry(false, uuid, code, url, "user", metadata, {});
619 const info = scriptData[1];
620 if (isSkillScript) {
621 info.skillScript = true;
622 }
623 await new TempStorageDAO().save({
624 key: uuid,
625 value: scriptData,
626 savedAt: Date.now(),
627 type: TempStorageItemType.tempCode,
628 });
629
630 setSearchParams(new URLSearchParams(`?uuid=${uuid}`), { replace: true });
631 } catch (err: any) {
632 setFetchingState((prev) => ({
633 ...prev,
634 loadingStatus: "",
635 errorStatus: `${err?.message || err}`,
636 }));
637 }
638 };
639
640 // 从 URL 加载 Skill(.cat.md)
641 const loadSkillFromUrl = async (url: string) => {

Callers 1

handleUrlChangeAndFetchFunction · 0.85

Calls 3

createTempCodeEntryFunction · 0.90
fetchValidScriptFunction · 0.85
saveMethod · 0.65

Tested by

no test coverage detected