feat: add realm sharing
This commit is contained in:
@@ -393,10 +393,12 @@
|
||||
</h1>
|
||||
<span class="text-textcolor mt-4">{language.type}</span>
|
||||
{#if cardExportType === ''}
|
||||
{#if $alertStore.submsg !== 'preset'}
|
||||
<span class="text-textcolor2 text-sm">{language.ccv3Desc}</span>
|
||||
{:else}
|
||||
{#if $alertStore.submsg === 'module'}
|
||||
<span class="text-textcolor2 text-sm">{language.jsonDesc}</span>
|
||||
{:else if $alertStore.submsg === 'preset'}
|
||||
<span class="text-textcolor2 text-sm">{language.risupresetDesc}</span>
|
||||
{:else}
|
||||
<span class="text-textcolor2 text-sm">{language.ccv3Desc}</span>
|
||||
{/if}
|
||||
{:else if cardExportType === 'json'}
|
||||
<span class="text-textcolor2 text-sm">{language.jsonDesc}</span>
|
||||
@@ -410,8 +412,11 @@
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg flex-1" class:ring-1={cardExportType === ''} on:click={() => {cardExportType = ''}}>Risupreset</button>
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg ml-2 flex-1" class:ring-1={cardExportType === 'json'} on:click={() => {cardExportType = 'json'}}>JSON</button>
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg ml-2 flex-1" class:ring-1={cardExportType === 'realm'} on:click={() => {cardExportType = 'realm'}}>RisuRealm</button>
|
||||
{:else if $alertStore.submsg === 'module'}
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg flex-1" class:ring-1={cardExportType === ''} on:click={() => {cardExportType = ''}}>JSON</button>
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg ml-2 flex-1" class:ring-1={cardExportType === 'realm'} on:click={() => {cardExportType = 'realm'}}>RisuRealm</button>
|
||||
{:else}
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg flex-1" class:ring-1={cardExportType === ''} on:click={() => {cardExportType = ''}}>Character Card V3</button>
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg flex-1" class:ring-1={cardExportType === ''} on:click={() => {cardExportType = ''}}>Character Card V3</button>
|
||||
<button class="bg-bgcolor px-2 py-4 rounded-lg flex-1 ml-2" class:ring-1={cardExportType === 'ccv2'} on:click={() => {cardExportType = 'ccv2'}}>Character Card V2</button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -4,11 +4,12 @@
|
||||
import Button from "src/lib/UI/GUI/Button.svelte";
|
||||
import ModuleMenu from "src/lib/Setting/Pages/Module/ModuleMenu.svelte";
|
||||
import { exportModule, importModule, type RisuModule } from "src/ts/process/modules";
|
||||
import { DownloadIcon, Edit, TrashIcon, Globe } from "lucide-svelte";
|
||||
import { DownloadIcon, Edit, TrashIcon, Globe, Share2Icon } from "lucide-svelte";
|
||||
import { v4 } from "uuid";
|
||||
import { tooltip } from "src/ts/gui/tooltip";
|
||||
import { alertConfirm } from "src/ts/alert";
|
||||
import { alertCardExport, alertConfirm, alertError } from "src/ts/alert";
|
||||
import TextInput from "src/lib/UI/GUI/TextInput.svelte";
|
||||
import { ShowRealmFrameStore } from "src/ts/stores";
|
||||
let tempModule:RisuModule = {
|
||||
name: '',
|
||||
description: '',
|
||||
@@ -72,9 +73,19 @@
|
||||
</button>
|
||||
<button class="text-textcolor2 hover:text-green-500 mr-2 cursor-pointer" use:tooltip={language.download} on:click={async (e) => {
|
||||
e.stopPropagation()
|
||||
exportModule(rmodule)
|
||||
const data = await alertCardExport('module')
|
||||
if(data.type === ''){
|
||||
exportModule(rmodule)
|
||||
}
|
||||
if(data.type === 'realm'){
|
||||
if(!$DataBase.account){
|
||||
alertError(language.notLoggedIn)
|
||||
return
|
||||
}
|
||||
$ShowRealmFrameStore = `module:${i}`
|
||||
}
|
||||
}}>
|
||||
<DownloadIcon size={18}/>
|
||||
<Share2Icon size={18}/>
|
||||
</button>
|
||||
<button class="text-textcolor2 hover:text-green-500 mr-2 cursor-pointer" use:tooltip={language.edit} on:click={async (e) => {
|
||||
e.stopPropagation()
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
}
|
||||
if(e.data.type === 'success'){
|
||||
alertMd(`## Upload Success\n\nYour character has been uploaded to Realm successfully.\n\n${"```\nhttps://realm.risuai.net/character/" + e.data.id + "\n```"}`)
|
||||
if($ShowRealmFrameStore.startsWith('preset')){
|
||||
if($ShowRealmFrameStore.startsWith('preset') || $ShowRealmFrameStore.startsWith('module')){
|
||||
//TODO, add preset edit
|
||||
}
|
||||
else if($CurrentCharacter.type === 'character'){
|
||||
@@ -66,6 +66,17 @@
|
||||
name: encodedPredataName.buffer
|
||||
}
|
||||
}
|
||||
else if($ShowRealmFrameStore.startsWith('module')){
|
||||
const predata = $DataBase.modules[Number($ShowRealmFrameStore.split(':')[1])]
|
||||
//@ts-ignore
|
||||
predata.type = 'risuModule'
|
||||
const encodedPredata = new TextEncoder().encode(JSON.stringify(predata))
|
||||
const encodedPredataName = new TextEncoder().encode(predata.name + '.json')
|
||||
data = {
|
||||
data: encodedPredata.buffer,
|
||||
name: encodedPredataName.buffer
|
||||
}
|
||||
}
|
||||
else{
|
||||
data = await shareRealmCardData()
|
||||
}
|
||||
@@ -82,7 +93,7 @@
|
||||
|
||||
const getUrl = () => {
|
||||
let url = `https://realm.risuai.net/upload?token=${tk}&token_id=${id}`
|
||||
if($ShowRealmFrameStore.startsWith('preset')){
|
||||
if($ShowRealmFrameStore.startsWith('preset') || $ShowRealmFrameStore.startsWith('module')){
|
||||
//TODO, add preset edit
|
||||
}
|
||||
else if($CurrentCharacter.type === 'character' && $CurrentCharacter.realmId){
|
||||
|
||||
Reference in New Issue
Block a user