diff --git a/src/lib/Setting/Pages/AdvancedSettings.svelte b/src/lib/Setting/Pages/AdvancedSettings.svelte index 22c07940..0bdea6f6 100644 --- a/src/lib/Setting/Pages/AdvancedSettings.svelte +++ b/src/lib/Setting/Pages/AdvancedSettings.svelte @@ -134,6 +134,13 @@ +{#if DBState.db?.account?.useSync} +
+ + + +
+{/if} {#if DBState.db.dynamicAssets}
diff --git a/src/ts/characterCards.ts b/src/ts/characterCards.ts index 0cb309fe..c895d90a 100644 --- a/src/ts/characterCards.ts +++ b/src/ts/characterCards.ts @@ -44,6 +44,7 @@ export async function importCharacter() { export async function importCharacterProcess(f:{ name: string; data: Uint8Array|File|ReadableStream + lightningRealmImport?:boolean }) { if(f.name.endsWith('json')){ if(f.data instanceof ReadableStream){ @@ -123,6 +124,9 @@ export async function importCharacterProcess(f:{ returnTrimed: true }) const assets:{[key:string]:string} = {} + let queueFetch:Promise[] = [] + let queueFetchKey:string[] = [] + let queueFetchData:Buffer[] = [] for await (const chunk of readGenerator){ console.log(chunk) if(!chunk){ @@ -149,10 +153,53 @@ export async function importCharacterProcess(f:{ const assetIndex = chunk.key.replace('chara-ext-asset_:', '').replace('chara-ext-asset_', '') alertWait('Loading... (Reading Asset ' + assetIndex + ')' ) const assetData = Buffer.from(chunk.value, 'base64') + if(db.account?.useSync && f.lightningRealmImport){ + const id = await hasher(assetData) + const xid = 'assets/' + id + '.png' + queueFetchKey.push(assetIndex) + queueFetchData.push(assetData) + queueFetch.push(fetch('https://sv.risuai.xyz/rs/' + xid)) + assets[assetIndex] = 'xid:' + xid + if(queueFetch.length > 10){ + const res = await Promise.all(queueFetch) + for(let i=0;i 0){ + const res = await Promise.all(queueFetch) + for(let i=0;i