diff --git a/src/ts/characterCards.ts b/src/ts/characterCards.ts index d8ad5151..0f4b16bf 100644 --- a/src/ts/characterCards.ts +++ b/src/ts/characterCards.ts @@ -228,85 +228,9 @@ export async function exportChar(charaID:number) { return } - const sel = await alertSelect(['Export as Spec V2','Export as Old RisuCard']) - if(sel === '0'){ - exportSpecV2(char) - return - } - - alertStore.set({ - type: 'wait', - msg: 'Loading...' - }) - - let img = await readImage(char.image) - - try{ - if(char.emotionImages && char.emotionImages.length > 0){ - for(let i=0;i", - name: char.name, - personality: char.personality ?? "", - scenario: char.scenario ?? "", - talkativeness: "0.5" - } - - await sleep(10) - img = PngMetadata.write(img, { - 'chara': Buffer.from(JSON.stringify(tavernData)).toString('base64'), - 'risuai': data - }) - - alertStore.set({ - type: 'wait', - msg: 'Loading... (Writing)' - }) - - char.image = '' - await sleep(10) - await downloadFile(`${char.name.replace(/[<>:"/\\|?*\.\,]/g, "")}_export.png`, img) - - alertNormal(language.successExport) - - } - catch(e){ - alertError(`${e}`) - } - + const sel = await alertSelect(['Export as PNG', 'Export as JSON']) + exportSpecV2(char, sel === '1' ? 'json' : 'png') + return } @@ -525,7 +449,7 @@ async function createBaseV2(char:character) { } -export async function exportSpecV2(char:character) { +export async function exportSpecV2(char:character, type:'png'|'json' = 'png') { let img = await readImage(char.image) try{ @@ -553,7 +477,13 @@ export async function exportSpecV2(char:character) { char.additionalAssets[i][1] = Buffer.from(await convertImage(rData)).toString('base64') } } - + + if(type === 'json'){ + await downloadFile(`${char.name.replace(/[<>:"/\\|?*\.\,]/g, "")}_export.json`, Buffer.from(JSON.stringify(card, null, 4), 'utf-8')) + alertNormal(language.successExport) + return + } + alertStore.set({ type: 'wait', msg: 'Loading... (Writing Exif)'