feat: add realm sharing
This commit is contained in:
@@ -393,10 +393,12 @@
|
|||||||
</h1>
|
</h1>
|
||||||
<span class="text-textcolor mt-4">{language.type}</span>
|
<span class="text-textcolor mt-4">{language.type}</span>
|
||||||
{#if cardExportType === ''}
|
{#if cardExportType === ''}
|
||||||
{#if $alertStore.submsg !== 'preset'}
|
{#if $alertStore.submsg === 'module'}
|
||||||
<span class="text-textcolor2 text-sm">{language.ccv3Desc}</span>
|
<span class="text-textcolor2 text-sm">{language.jsonDesc}</span>
|
||||||
{:else}
|
{:else if $alertStore.submsg === 'preset'}
|
||||||
<span class="text-textcolor2 text-sm">{language.risupresetDesc}</span>
|
<span class="text-textcolor2 text-sm">{language.risupresetDesc}</span>
|
||||||
|
{:else}
|
||||||
|
<span class="text-textcolor2 text-sm">{language.ccv3Desc}</span>
|
||||||
{/if}
|
{/if}
|
||||||
{:else if cardExportType === 'json'}
|
{:else if cardExportType === 'json'}
|
||||||
<span class="text-textcolor2 text-sm">{language.jsonDesc}</span>
|
<span class="text-textcolor2 text-sm">{language.jsonDesc}</span>
|
||||||
@@ -410,6 +412,9 @@
|
|||||||
<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 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 === '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>
|
<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}
|
{: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>
|
<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>
|
||||||
|
|||||||
@@ -4,11 +4,12 @@
|
|||||||
import Button from "src/lib/UI/GUI/Button.svelte";
|
import Button from "src/lib/UI/GUI/Button.svelte";
|
||||||
import ModuleMenu from "src/lib/Setting/Pages/Module/ModuleMenu.svelte";
|
import ModuleMenu from "src/lib/Setting/Pages/Module/ModuleMenu.svelte";
|
||||||
import { exportModule, importModule, type RisuModule } from "src/ts/process/modules";
|
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 { v4 } from "uuid";
|
||||||
import { tooltip } from "src/ts/gui/tooltip";
|
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 TextInput from "src/lib/UI/GUI/TextInput.svelte";
|
||||||
|
import { ShowRealmFrameStore } from "src/ts/stores";
|
||||||
let tempModule:RisuModule = {
|
let tempModule:RisuModule = {
|
||||||
name: '',
|
name: '',
|
||||||
description: '',
|
description: '',
|
||||||
@@ -72,9 +73,19 @@
|
|||||||
</button>
|
</button>
|
||||||
<button class="text-textcolor2 hover:text-green-500 mr-2 cursor-pointer" use:tooltip={language.download} on:click={async (e) => {
|
<button class="text-textcolor2 hover:text-green-500 mr-2 cursor-pointer" use:tooltip={language.download} on:click={async (e) => {
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
|
const data = await alertCardExport('module')
|
||||||
|
if(data.type === ''){
|
||||||
exportModule(rmodule)
|
exportModule(rmodule)
|
||||||
|
}
|
||||||
|
if(data.type === 'realm'){
|
||||||
|
if(!$DataBase.account){
|
||||||
|
alertError(language.notLoggedIn)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$ShowRealmFrameStore = `module:${i}`
|
||||||
|
}
|
||||||
}}>
|
}}>
|
||||||
<DownloadIcon size={18}/>
|
<Share2Icon size={18}/>
|
||||||
</button>
|
</button>
|
||||||
<button class="text-textcolor2 hover:text-green-500 mr-2 cursor-pointer" use:tooltip={language.edit} on:click={async (e) => {
|
<button class="text-textcolor2 hover:text-green-500 mr-2 cursor-pointer" use:tooltip={language.edit} on:click={async (e) => {
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
}
|
}
|
||||||
if(e.data.type === 'success'){
|
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```"}`)
|
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
|
//TODO, add preset edit
|
||||||
}
|
}
|
||||||
else if($CurrentCharacter.type === 'character'){
|
else if($CurrentCharacter.type === 'character'){
|
||||||
@@ -66,6 +66,17 @@
|
|||||||
name: encodedPredataName.buffer
|
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{
|
else{
|
||||||
data = await shareRealmCardData()
|
data = await shareRealmCardData()
|
||||||
}
|
}
|
||||||
@@ -82,7 +93,7 @@
|
|||||||
|
|
||||||
const getUrl = () => {
|
const getUrl = () => {
|
||||||
let url = `https://realm.risuai.net/upload?token=${tk}&token_id=${id}`
|
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
|
//TODO, add preset edit
|
||||||
}
|
}
|
||||||
else if($CurrentCharacter.type === 'character' && $CurrentCharacter.realmId){
|
else if($CurrentCharacter.type === 'character' && $CurrentCharacter.realmId){
|
||||||
|
|||||||
Reference in New Issue
Block a user