From 101a141b482db81d365980fc8add80677c43f044 Mon Sep 17 00:00:00 2001 From: LL Date: Fri, 2 Jun 2023 22:51:28 +0900 Subject: [PATCH 01/15] [FIX] Modify auto suggest token count position --- src/lib/Setting/Pages/BotSettings.svelte | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte index db53f85e..700d719e 100644 --- a/src/lib/Setting/Pages/BotSettings.svelte +++ b/src/lib/Setting/Pages/BotSettings.svelte @@ -146,8 +146,7 @@ {tokens.jailbreak} {language.tokens} {language.globalNote} - {tokens.globalNote} {language.tokens} - {tokens.autoSuggest} {language.tokens} + {tokens.globalNote} {language.tokens} {language.maxContextSize} {#if $DataBase.aiModel === 'gpt35'} @@ -175,8 +174,9 @@ {language.submodel} {language.forceReplaceUrl} -{language.autoSuggest} - +{language.autoSuggest} + +{tokens.autoSuggest} {language.tokens} {/if} From 251fe4ad47dab67973b7ce305ee60d56114d19c9 Mon Sep 17 00:00:00 2001 From: LL Date: Fri, 2 Jun 2023 23:09:43 +0900 Subject: [PATCH 02/15] [UX] Make the settings close button visible regardless of scrolling --- src/lib/Setting/Settings.svelte | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/Setting/Settings.svelte b/src/lib/Setting/Settings.svelte index e1415237..29874677 100644 --- a/src/lib/Setting/Settings.svelte +++ b/src/lib/Setting/Settings.svelte @@ -25,7 +25,7 @@
-
+
{#if window.innerWidth >= 700 || selected === -1}
@@ -135,17 +135,17 @@ {:else if selected === 11} {/if} -
+ {/if}
From b297268448f571e1db9f1930465cc6ef67835436 Mon Sep 17 00:00:00 2001 From: LL Date: Sat, 3 Jun 2023 00:07:59 +0900 Subject: [PATCH 03/15] [UX] Character deletion function menu separation --- src/lib/SideBars/CharConfig.svelte | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte index ee3f5c19..a9fca5cb 100644 --- a/src/lib/SideBars/CharConfig.svelte +++ b/src/lib/SideBars/CharConfig.svelte @@ -1,9 +1,9 @@
@@ -132,6 +131,9 @@ +
@@ -676,6 +678,8 @@
{/if} {/if} +{:else if subMenu === 6} +

{currentChar.type === 'group' ? language.removeGroup : language.removeCharacter}

{/if} From f8516519f3b75d4c5f15040a363410924ae94778 Mon Sep 17 00:00:00 2001 From: LL Date: Sat, 3 Jun 2023 02:02:21 +0900 Subject: [PATCH 04/15] Fixed the problem that auto-suggestion does not work for firstMessage Fixed the problem that auto-suggestion is not saved --- src/lib/ChatScreens/Suggestion.svelte | 35 +++++++++++++++++++-------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/lib/ChatScreens/Suggestion.svelte b/src/lib/ChatScreens/Suggestion.svelte index 1ad34eab..9ae4309f 100644 --- a/src/lib/ChatScreens/Suggestion.svelte +++ b/src/lib/ChatScreens/Suggestion.svelte @@ -1,7 +1,7 @@ +

Shared Characters

+
+ {#await getRisuHub() then charas} + {#each charas as chara} + + {/each} + {/await} +
+ + +{#if openedData} + +
{ + openedData = null + }}> +
+
+
+ {openedData.name} +

{openedData.name}

+
+ {openedData.desc} +
+
+ + +
+
+
+ +{/if} \ No newline at end of file diff --git a/src/lib/UI/MainMenu.svelte b/src/lib/UI/MainMenu.svelte new file mode 100644 index 00000000..083aadff --- /dev/null +++ b/src/lib/UI/MainMenu.svelte @@ -0,0 +1,14 @@ + +
+

RisuAI

+

Version {appVer}

+ +
+ +
+
\ No newline at end of file diff --git a/src/ts/characterCards.ts b/src/ts/characterCards.ts index 6053ade8..0fc7fce0 100644 --- a/src/ts/characterCards.ts +++ b/src/ts/characterCards.ts @@ -10,7 +10,9 @@ import { PngMetadata } from "./exif" import { characterFormatUpdate } from "./characters" import { checkCharOrder, downloadFile, readImage, saveAsset } from "./storage/globalApi" import { cloneDeep } from "lodash" +import { selectedCharID } from "./stores" +export const hubURL = import.meta.env.DEV ? "http://127.0.0.1:8787" : "https://sv.risuai.xyz" export async function importCharacter() { try { @@ -200,7 +202,7 @@ function convertOldTavernAndJSON(charaData:OldTavernChar, imgp:string|undefined alternateGreetings:[], tags:[], creator:"", - characterVersion: 0, + characterVersion: '', personality: charaData.personality ?? '', scenario:charaData.scenario ?? '', firstMsgIndex: -1, @@ -307,10 +309,13 @@ export async function exportChar(charaID:number) { } -async function importSpecv2(card:CharacterCardV2, img?:Uint8Array):Promise{ +async function importSpecv2(card:CharacterCardV2, img?:Uint8Array, mode?:'hub'|'normal'):Promise{ if(!card ||card.spec !== 'chara_card_v2'){ return false } + if(!mode){ + mode = 'normal' + } const data = card.data const im = img ? await saveAsset(PngMetadata.filter(img)) : undefined @@ -333,7 +338,7 @@ async function importSpecv2(card:CharacterCardV2, img?:Uint8Array):Promise r.trim()), + secondary_keys: lore.selective ? lore.secondkey.split(',').map(r => r.trim()) : undefined, + content: lore.content, + extensions: ext, + enabled: true, + insertion_order: lore.insertorder, + constant: lore.alwaysActive, + selective:lore.selective, + name: lore.comment, + comment: lore.comment, + case_sensitive: caseSensitive, + }) + } + + const card:CharacterCardV2 = { + spec: "chara_card_v2", + spec_version: "2.0", + data: { + name: char.name, + description: char.desc, + personality: char.personality, + scenario: char.scenario, + first_mes: char.firstMessage, + mes_example: char.exampleMessage, + creator_notes: char.creatorNotes, + system_prompt: char.systemPrompt, + post_history_instructions: char.replaceGlobalNote, + alternate_greetings: char.alternateGreetings, + character_book: { + scan_depth: char.loreSettings?.scanDepth, + token_budget: char.loreSettings?.tokenBudget, + recursive_scanning: char.loreSettings?.recursiveScanning, + extensions: char.loreExt ?? {}, + entries: charBook + }, + tags: char.additionalData?.tag ?? [], + creator: char.additionalData?.creator ?? '', + character_version: `${char.additionalData?.character_version}` ?? '', + extensions: { + risuai: { + emotions: char.emotionImages, + bias: char.bias, + viewScreen: char.viewScreen, + customScripts: char.customscript, + utilityBot: char.utilityBot, + sdData: char.sdData, + additionalAssets: char.additionalAssets + } + } + } + } + console.log(card) + return card +} + + export async function exportSpecV2(char:character) { let img = await readImage(char.image) try{ - - let charBook:charBookEntry[] = [] - for(const lore of char.globalLore){ - let ext:{ - risu_case_sensitive?: boolean; - risu_activationPercent?: number - } = cloneDeep(lore.extentions ?? {}) - - let caseSensitive = ext.risu_case_sensitive ?? false - ext.risu_activationPercent = lore.activationPercent - - charBook.push({ - keys: lore.key.split(',').map(r => r.trim()), - secondary_keys: lore.selective ? lore.secondkey.split(',').map(r => r.trim()) : undefined, - content: lore.content, - extensions: ext, - enabled: true, - insertion_order: lore.insertorder, - constant: lore.alwaysActive, - selective:lore.selective, - name: lore.comment, - comment: lore.comment, - case_sensitive: caseSensitive, - }) - } - - const card:CharacterCardV2 = { - spec: "chara_card_v2", - spec_version: "2.0", - data: { - name: char.name, - description: char.desc, - personality: char.personality, - scenario: char.scenario, - first_mes: char.firstMessage, - mes_example: char.exampleMessage, - creator_notes: char.creatorNotes, - system_prompt: char.systemPrompt, - post_history_instructions: char.replaceGlobalNote, - alternate_greetings: char.alternateGreetings, - character_book: { - scan_depth: char.loreSettings?.scanDepth, - token_budget: char.loreSettings?.tokenBudget, - recursive_scanning: char.loreSettings?.recursiveScanning, - extensions: char.loreExt ?? {}, - entries: charBook - }, - tags: char.additionalData?.tag ?? [], - creator: char.additionalData?.creator ?? '', - character_version: char.additionalData?.character_version ?? 0, - extensions: { - risuai: { - emotions: char.emotionImages, - bias: char.bias, - viewScreen: char.viewScreen, - customScripts: char.customscript, - utilityBot: char.utilityBot, - sdData: char.sdData, - additionalAssets: char.additionalAssets - } - } - } - } - + const card = await createBaseV2(char) if(card.data.extensions.risuai.emotions && card.data.extensions.risuai.emotions.length > 0){ for(let i=0;i 0){ + for(let i=0;i 0){ + for(let i=0;i { + const da = await fetch(hubURL + '/hub/list', { + method: "POST", + body: JSON.stringify({ + + }) + }) + if(da.status !== 200){ + return [] + } + return da.json() +} + +export async function downloadRisuHub(id:string, img:string) { + alertStore.set({ + type: "wait", + msg: "Downloading..." + }) + const res = await fetch(hubURL + '/hub/get', { + method: "POST", + body: JSON.stringify({ + id: id + }) + }) + if(res.status !== 200){ + alertError(await res.text()) + } + + const data:CharacterCardV2 = await res.json() + + await importSpecv2(data, await getHubResources(img), 'hub') + checkCharOrder() + let db = get(DataBase) + if(db.characters[db.characters.length-1]){ + const index = db.characters.length-1 + characterFormatUpdate(index); + selectedCharID.set(index); + } + +} + +export async function getHubResources(id:string) { + const res = await fetch(`${hubURL}/resource/${id}`) + if(res.status !== 200){ + throw (await res.text()) + } + return Buffer.from(await (res).arrayBuffer()) +} + + type CharacterCardV2 = { spec: 'chara_card_v2' @@ -581,7 +702,7 @@ type CharacterCardV2 = { character_book?: CharacterBook tags: string[] creator: string - character_version: number + character_version: string extensions: { risuai?:{ emotions?:[string, string][] diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index a42d2a72..47980977 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -311,7 +311,7 @@ export interface character{ alternateGreetings:string[] tags:string[] creator:string - characterVersion: number + characterVersion: string personality:string scenario:string firstMsgIndex:number @@ -320,7 +320,7 @@ export interface character{ additionalData?: { tag?:string[] creator?:string - character_version?:number + character_version?:string } ttsMode?:string ttsSpeech?:string diff --git a/tailwind.config.js b/tailwind.config.js index ec5f8e37..992bf6c6 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -23,6 +23,8 @@ export default { '80p': '80%', '80vw': '80vw', '14': '3.5rem', + '24': '6rem', + '36': '9rem', '100vw': '100vw' }, borderWidth: { From ce3f0dff0a085fe0fbd6113db1db8c00795e9bbb Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sat, 3 Jun 2023 06:19:59 +0900 Subject: [PATCH 06/15] [feat] hub only experimental --- src/lib/UI/MainMenu.svelte | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/UI/MainMenu.svelte b/src/lib/UI/MainMenu.svelte index 083aadff..781ffa04 100644 --- a/src/lib/UI/MainMenu.svelte +++ b/src/lib/UI/MainMenu.svelte @@ -1,5 +1,5 @@
@@ -131,9 +132,6 @@ -
@@ -678,8 +676,6 @@ {/if} {/if} -{:else if subMenu === 6} -

{currentChar.type === 'group' ? language.removeGroup : language.removeCharacter}

{/if} From c80b22a7285f2931ac1fde744d26abfe07bec84d Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sat, 3 Jun 2023 23:58:24 +0900 Subject: [PATCH 08/15] [feat] basic mainmenu --- src/lang/en.ts | 4 ++- src/lib/SideBars/CharConfig.svelte | 2 +- src/lib/SideBars/Sidebar.svelte | 4 +-- src/lib/UI/Hub.svelte | 1 - src/lib/UI/MainMenu.svelte | 57 ++++++++++++++++++++++++++---- src/ts/stores.ts | 2 +- 6 files changed, 57 insertions(+), 13 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index b4a9f023..0f9e8f13 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -297,5 +297,7 @@ export const languageEnglish = { talkness: "Talkativeness", active: "Active", loreRandomActivation: "Use Probability Condition", - activationProbability: "Probability" + activationProbability: "Probability", + shareCloud: "Share to RisuRealm", + hub: "RisuRealm" } \ No newline at end of file diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte index 334e7daf..b1bc94a6 100644 --- a/src/lib/SideBars/CharConfig.svelte +++ b/src/lib/SideBars/CharConfig.svelte @@ -670,7 +670,7 @@ if(cha.type !== 'group'){ shareRisuHub(cha) } - }} class="text-neutral-200 mt-2 text-lg bg-transparent border-solid border-1 border-borderc p-4 hover:bg-green-500 transition-colors cursor-pointer">Upload Hub (experimental) + }} class="text-neutral-200 mt-2 text-lg bg-transparent border-solid border-1 border-borderc p-4 hover:bg-green-500 transition-colors cursor-pointer">{language.shareCloud} {/if} {:else} {#if currentChar.data.chats[currentChar.data.chatPage].supaMemoryData && currentChar.data.chats[currentChar.data.chatPage].supaMemoryData.length > 4} diff --git a/src/lib/SideBars/Sidebar.svelte b/src/lib/SideBars/Sidebar.svelte index 4f90fdae..496b5acc 100644 --- a/src/lib/SideBars/Sidebar.svelte +++ b/src/lib/SideBars/Sidebar.svelte @@ -518,8 +518,8 @@
1000} + class:flex-grow={$SizeStore.w <= 1028} + class:minw96={$SizeStore.w > 1028} > + + + {#if $DataBase.useExperimental} + + {:else} + + {/if} +
+ {:else} +
+ +

{language.hub}

+
+ + {/if} \ No newline at end of file diff --git a/src/ts/stores.ts b/src/ts/stores.ts index 4ab51a40..8ad71504 100644 --- a/src/ts/stores.ts +++ b/src/ts/stores.ts @@ -11,7 +11,7 @@ export const SizeStore = writable({ w: 0, h: 0 }) -export const sideBarStore = writable(true) +export const sideBarStore = writable(false) export const selectedCharID = writable(-1) export const CharEmotion = writable({} as {[key:string]: [string, string, number][]}) export const ViewBoxsize = writable({ width: 12 * 16, height: 12 * 16 }); // Default width and height in pixels From de1c338f9a632cfcc3accaa12c636297ab623188 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 4 Jun 2023 05:58:58 +0900 Subject: [PATCH 09/15] [feat] realm upload and search --- src/lang/en.ts | 3 +- src/lib/SideBars/CharConfig.svelte | 19 +++---- src/lib/UI/Hub.svelte | 84 ++++++++++++++++++++++++------ src/lib/UI/HubUpload.svelte | 62 ++++++++++++++++++++++ src/ts/characterCards.ts | 58 +++++++++++++++------ src/ts/characters.ts | 6 +-- 6 files changed, 186 insertions(+), 46 deletions(-) create mode 100644 src/lib/UI/HubUpload.svelte diff --git a/src/lang/en.ts b/src/lang/en.ts index 0f9e8f13..5e46dfa9 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -299,5 +299,6 @@ export const languageEnglish = { loreRandomActivation: "Use Probability Condition", activationProbability: "Probability", shareCloud: "Share to RisuRealm", - hub: "RisuRealm" + hub: "RisuRealm", + tags: "Tags" } \ No newline at end of file diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte index b1bc94a6..14ae070e 100644 --- a/src/lib/SideBars/CharConfig.svelte +++ b/src/lib/SideBars/CharConfig.svelte @@ -17,10 +17,11 @@ import { exportChar, shareRisuHub } from "src/ts/characterCards"; import { getElevenTTSVoices, getWebSpeechTTSVoices, getVOICEVOXVoices } from "src/ts/process/tts"; import { checkCharOrder } from "src/ts/storage/globalApi"; - import { addGroupChar, rmCharFromGroup } from "src/ts/process/group"; + import { addGroupChar, rmCharFromGroup } from "src/ts/process/group"; + import HubUpload from "../UI/HubUpload.svelte"; let subMenu = 0 - let subberMenu = 0 + let openHubUpload = false let emos:[string, string][] = [] let tokens = { desc: 0, @@ -118,7 +119,7 @@ - {#if currentChar.type === 'character'} @@ -665,12 +666,12 @@ }} class="text-neutral-200 mt-6 text-lg bg-transparent border-solid border-1 border-borderc p-4 hover:bg-green-500 transition-colors cursor-pointer">{language.exportCharacter} {#if $DataBase.useExperimental} - + + {/if} + {#if openHubUpload} + {openHubUpload=false}}/> {/if} {:else} {#if currentChar.data.chats[currentChar.data.chatPage].supaMemoryData && currentChar.data.chats[currentChar.data.chatPage].supaMemoryData.length > 4} diff --git a/src/lib/UI/Hub.svelte b/src/lib/UI/Hub.svelte index 89f20d45..3debb308 100644 --- a/src/lib/UI/Hub.svelte +++ b/src/lib/UI/Hub.svelte @@ -1,7 +1,7 @@ -
- {#await getRisuHub() then charas} - {#each charas as chara} - +
+ +
+ {#each charas as chara} + - {/each} - {/await} +
+ + {/each} @@ -37,13 +74,26 @@
- {openedData.name} + {openedData.name}

{openedData.name}

{openedData.desc}
- + +
+ {language.creatorNotes} + A description that displays when you search and when you first open a bot. + More than 20 characters. + + {language.tags} + Tags to search your character easily. latin alphabets only. seperate by comma. + { + tags = tags.replace(/[^a-zA-Z,]/g, '').toLocaleLowerCase() + }}> +
+ + +
+
+ + +
+ {#if nsfwMode} + Grotesque Contents and Child poronography would be banned. + {/if} + +
+
+ + + \ No newline at end of file diff --git a/src/ts/characterCards.ts b/src/ts/characterCards.ts index 0fc7fce0..db79bac7 100644 --- a/src/ts/characterCards.ts +++ b/src/ts/characterCards.ts @@ -431,7 +431,7 @@ async function importSpecv2(card:CharacterCardV2, img?:Uint8Array, mode?:'hub'|' loreSettings: loresettings, loreExt: loreExt, additionalData: { - tag: data.tags, + tag: data.tags ?? [], creator: data.creator, character_version: data.character_version }, @@ -482,15 +482,15 @@ async function createBaseV2(char:character) { spec_version: "2.0", data: { name: char.name, - description: char.desc, - personality: char.personality, - scenario: char.scenario, - first_mes: char.firstMessage, - mes_example: char.exampleMessage, - creator_notes: char.creatorNotes, - system_prompt: char.systemPrompt, - post_history_instructions: char.replaceGlobalNote, - alternate_greetings: char.alternateGreetings, + description: char.desc ?? '', + personality: char.personality ?? '', + scenario: char.scenario ?? '', + first_mes: char.firstMessage ?? '', + mes_example: char.exampleMessage ?? '', + creator_notes: char.creatorNotes ?? '', + system_prompt: char.systemPrompt ?? '', + post_history_instructions: char.replaceGlobalNote ?? '', + alternate_greetings: char.alternateGreetings ?? [], character_book: { scan_depth: char.loreSettings?.scanDepth, token_budget: char.loreSettings?.tokenBudget, @@ -498,7 +498,7 @@ async function createBaseV2(char:character) { extensions: char.loreExt ?? {}, entries: charBook }, - tags: char.additionalData?.tag ?? [], + tags: char.tags ?? [], creator: char.additionalData?.creator ?? '', character_version: `${char.additionalData?.character_version}` ?? '', extensions: { @@ -575,7 +575,29 @@ export async function exportSpecV2(char:character) { } } -export async function shareRisuHub(char:character) { +export async function shareRisuHub(char:character, arg:{ + nsfw: boolean, + privateMode:boolean + tag:string +}) { + char = cloneDeep(char) + + let tagList = arg.tag.split(',') + + if(arg.nsfw){ + tagList.push("NSFW") + } + if(arg.privateMode){ + tagList.push("private") + } + + + let tags = tagList.filter((v, i) => { + return (!!v) && (tagList.indexOf(v) === i) + }) + char.tags = tags + + let img = await readImage(char.image) try{ @@ -594,6 +616,8 @@ export async function shareRisuHub(char:character) { } + + if(card.data.extensions.risuai.additionalAssets && card.data.extensions.risuai.additionalAssets.length > 0){ for(let i=0;i { const da = await fetch(hubURL + '/hub/list', { method: "POST", - body: JSON.stringify({ - - }) + body: JSON.stringify(arg ?? {}) }) if(da.status !== 200){ return [] } + console.log(da) return da.json() } diff --git a/src/ts/characters.ts b/src/ts/characters.ts index 5380f15f..63a309d5 100644 --- a/src/ts/characters.ts +++ b/src/ts/characters.ts @@ -280,14 +280,14 @@ export function characterFormatUpdate(index:number|character){ cha.systemPrompt = cha.systemPrompt ?? '' cha.tags = cha.tags ?? [] cha.creator = cha.creator ?? '' - cha.characterVersion = cha.characterVersion ?? 0 + cha.characterVersion = cha.characterVersion ?? '' cha.personality = cha.personality ?? '' cha.scenario = cha.scenario ?? '' cha.firstMsgIndex = cha.firstMsgIndex ?? -1 cha.additionalData = cha.additionalData ?? { tag: [], creator: '', - character_version: 0 + character_version: '' } cha.voicevoxConfig = cha.voicevoxConfig ?? { SPEED_SCALE: 1, @@ -356,7 +356,7 @@ export function createBlankChar():character{ alternateGreetings:[], tags:[], creator:"", - characterVersion: 0, + characterVersion: '', personality:"", scenario:"", firstMsgIndex: -1, From 495b2a4d47d97998e6e213aa32b539fcfb76ff28 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 4 Jun 2023 10:45:05 +0900 Subject: [PATCH 10/15] [feat] import from id --- src/lib/UI/Hub.svelte | 45 +++++++++++++++++++++++++++++++++------- src/ts/characterCards.ts | 10 +++++---- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/lib/UI/Hub.svelte b/src/lib/UI/Hub.svelte index 3debb308..3fa1f89f 100644 --- a/src/lib/UI/Hub.svelte +++ b/src/lib/UI/Hub.svelte @@ -1,6 +1,6 @@ -
-
- - +
@@ -72,7 +78,7 @@ openedData = null }}>
-
+
{openedData.name}

{openedData.name}

@@ -97,7 +103,7 @@
+{/if} + +{#if menuOpen} + +
{ + menuOpen = false + }}> +
+

+ + Menu + + +

+
+ +
+
{/if} \ No newline at end of file diff --git a/src/ts/characterCards.ts b/src/ts/characterCards.ts index db79bac7..3de9d94e 100644 --- a/src/ts/characterCards.ts +++ b/src/ts/characterCards.ts @@ -1,5 +1,5 @@ import { get } from "svelte/store" -import { alertConfirm, alertError, alertNormal, alertSelect, alertStore } from "./alert" +import { alertConfirm, alertError, alertMd, alertNormal, alertSelect, alertStore } from "./alert" import { DataBase, defaultSdDataFunc, type character, setDatabase, type customscript, type loreSettings, type loreBook } from "./storage/database" import { checkNullish, selectMultipleFile, selectSingleFile, sleep } from "./util" import { language } from "src/lang" @@ -643,7 +643,7 @@ export async function shareRisuHub(char:character, arg:{ alertError(await da.text()) } else{ - alertNormal("Successfuly Uploaded") + alertMd(await da.text()) } } catch(e){ @@ -673,7 +673,7 @@ export async function getRisuHub(arg?:{ return da.json() } -export async function downloadRisuHub(id:string, img:string) { +export async function downloadRisuHub(id:string) { alertStore.set({ type: "wait", msg: "Downloading..." @@ -688,7 +688,9 @@ export async function downloadRisuHub(id:string, img:string) { alertError(await res.text()) } - const data:CharacterCardV2 = await res.json() + const result = await res.json() + const data:CharacterCardV2 = result.card + const img:string = result.img await importSpecv2(data, await getHubResources(img), 'hub') checkCharOrder() From 2f90aa018daf4c710331bcc1dfcc40dcf110e023 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 4 Jun 2023 10:46:42 +0900 Subject: [PATCH 11/15] [feat] private characters warning --- src/lib/UI/HubUpload.svelte | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/UI/HubUpload.svelte b/src/lib/UI/HubUpload.svelte index 45c456b1..b8fe8639 100644 --- a/src/lib/UI/HubUpload.svelte +++ b/src/lib/UI/HubUpload.svelte @@ -28,7 +28,10 @@
{#if nsfwMode} - Grotesque Contents and Child poronography would be banned. + Grotesque Contents and Child poronography would be banned. + {/if} + {#if privateMode} + Private characters can be removed from the server if there is only a few downloads. {/if} -

Edit

- {/if}
From e3b61ed24fe36be42b657f843efbf4bbdc15343a Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 4 Jun 2023 10:49:30 +0900 Subject: [PATCH 13/15] [fix] changed upload text --- src/lib/UI/HubUpload.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/UI/HubUpload.svelte b/src/lib/UI/HubUpload.svelte index b8fe8639..40ba89dd 100644 --- a/src/lib/UI/HubUpload.svelte +++ b/src/lib/UI/HubUpload.svelte @@ -28,7 +28,7 @@
{#if nsfwMode} - Grotesque Contents and Child poronography would be banned. + Grotesque Contents and non-adult characters with NSFW would be banned. {/if} {#if privateMode} Private characters can be removed from the server if there is only a few downloads. From 96ac90b9c68e9539860cf58b67d04a81941a982b Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 4 Jun 2023 10:53:01 +0900 Subject: [PATCH 14/15] [feat] add home button --- src/lib/SideBars/Sidebar.svelte | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/SideBars/Sidebar.svelte b/src/lib/SideBars/Sidebar.svelte index 6140e682..89349522 100644 --- a/src/lib/SideBars/Sidebar.svelte +++ b/src/lib/SideBars/Sidebar.svelte @@ -23,6 +23,7 @@ PlusIcon, FolderIcon, FolderOpenIcon, + HomeIcon, } from "lucide-svelte"; import { characterFormatUpdate, @@ -507,6 +508,12 @@ }}>
+ { + reseter(); + selectedCharID.set(-1) + }}> +
{ reseter(); @@ -572,9 +579,6 @@ .minw96 { min-width: 24rem; /* 384px */ } - .title { - margin-bottom: 0.5rem; - } .editMode { min-width: 6rem; } From c4b0943aef892119a78930712f164318b32230db Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 4 Jun 2023 10:54:20 +0900 Subject: [PATCH 15/15] bump version to 1.23.0 --- src-tauri/tauri.conf.json | 2 +- src/ts/storage/database.ts | 2 +- version.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 98ce50bd..24457681 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -8,7 +8,7 @@ }, "package": { "productName": "RisuAI", - "version": "1.22.4" + "version": "1.23.0" }, "tauri": { "allowlist": { diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 47980977..61b33d22 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -8,7 +8,7 @@ import { defaultAutoSuggestPrompt, defaultJailbreak, defaultMainPrompt } from '. export const DataBase = writable({} as any as Database) export const loadedStore = writable(false) -export let appVer = '1.22.4' +export let appVer = '1.23.0' export function setDatabase(data:Database){ if(checkNullish(data.characters)){ diff --git a/version.json b/version.json index 711d9365..6b92a3be 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{"version":"1.22.4"} \ No newline at end of file +{"version":"1.23.0"} \ No newline at end of file