From ef6f671792230a10470515c638902b25b5348965 Mon Sep 17 00:00:00 2001
From: bangonicdd <157843588+bangonicdd2@users.noreply.github.com>
Date: Thu, 6 Feb 2025 19:45:55 +0900
Subject: [PATCH 1/3] feat: custom toggles for modules
---
src/lib/Setting/Pages/Module/ModuleMenu.svelte | 2 ++
src/lib/SideBars/CharConfig.svelte | 4 ++--
src/lib/SideBars/SideChatList.svelte | 11 +++++++----
src/ts/process/modules.ts | 15 +++++++++++++++
4 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/src/lib/Setting/Pages/Module/ModuleMenu.svelte b/src/lib/Setting/Pages/Module/ModuleMenu.svelte
index dfa58a8c..c8daa7ff 100644
--- a/src/lib/Setting/Pages/Module/ModuleMenu.svelte
+++ b/src/lib/Setting/Pages/Module/ModuleMenu.svelte
@@ -132,6 +132,8 @@
+ {language.customPromptTemplateToggle}
+
{/if}
{#if submenu === 1 && (Array.isArray(currentModule.lorebook))}
diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte
index 93a4c98a..e0165d1a 100644
--- a/src/lib/SideBars/CharConfig.svelte
+++ b/src/lib/SideBars/CharConfig.svelte
@@ -30,7 +30,7 @@
import { updateInlayScreen } from "src/ts/process/inlayScreen";
import { registerOnnxModel } from "src/ts/process/transformers";
import MultiLangInput from "../UI/GUI/MultiLangInput.svelte";
- import { applyModule } from "src/ts/process/modules";
+ import { applyModule, getModuleToggles } from "src/ts/process/modules";
import { exportRegex, importRegex } from "src/ts/process/scripts";
import Arcodion from "../UI/Arcodion.svelte";
import SliderInput from "../UI/GUI/SliderInput.svelte";
@@ -293,7 +293,7 @@
- {#each parseKeyValue(DBState.db.customPromptTemplateToggle) as toggle}
+ {#each parseKeyValue(DBState.db.customPromptTemplateToggle + getModuleToggles()) as toggle}
{
DBState.db.globalChatVariables[`toggle_${toggle[0]}`] = DBState.db.globalChatVariables[`toggle_${toggle[0]}`] === '1' ? '0' : '1'
diff --git a/src/lib/SideBars/SideChatList.svelte b/src/lib/SideBars/SideChatList.svelte
index 70f8a773..26053bc8 100644
--- a/src/lib/SideBars/SideChatList.svelte
+++ b/src/lib/SideBars/SideChatList.svelte
@@ -16,6 +16,9 @@
import { onDestroy, onMount } from "svelte";
import { v4 } from "uuid";
import { getChatBranches } from "src/ts/gui/branches";
+ import { getModuleToggles } from "src/ts/process/modules";
+
+ let parsedCustomToggles: [string, string][] = parseKeyValue(DBState.db.customPromptTemplateToggle + getModuleToggles())
interface Props {
chara: character|groupChat;
@@ -221,12 +224,12 @@
{#if DBState.db.characters[$selectedCharID]?.chaId !== '§playground'}
- {#if parseKeyValue(DBState.db.customPromptTemplateToggle).length > 4}
+ {#if parsedCustomToggles.length > 4}
- {#each parseKeyValue(DBState.db.customPromptTemplateToggle) as toggle}
+ {#each parsedCustomToggles as toggle}
{
DBState.db.globalChatVariables[`toggle_${toggle[0]}`] = DBState.db.globalChatVariables[`toggle_${toggle[0]}`] === '1' ? '0' : '1'
@@ -239,11 +242,11 @@
{/if}
- {:else if parseKeyValue(DBState.db.customPromptTemplateToggle).length > 0}
+ {:else if parsedCustomToggles.length > 0}
- {#each parseKeyValue(DBState.db.customPromptTemplateToggle) as toggle}
+ {#each parsedCustomToggles as toggle}
{
DBState.db.globalChatVariables[`toggle_${toggle[0]}`] = DBState.db.globalChatVariables[`toggle_${toggle[0]}`] === '1' ? '0' : '1'
diff --git a/src/ts/process/modules.ts b/src/ts/process/modules.ts
index 5afb4f00..dae9b735 100644
--- a/src/ts/process/modules.ts
+++ b/src/ts/process/modules.ts
@@ -24,6 +24,7 @@ export interface RisuModule{
backgroundEmbedding?:string
assets?:[string,string,string][]
namespace?:string
+ customModuleToggle?:string
}
export async function exportModule(module:RisuModule, arg:{
@@ -352,6 +353,20 @@ export function getModuleRegexScripts() {
return customscripts
}
+export function getModuleToggles() {
+ const modules = getModules()
+ let costomModuleToggles: string = ''
+ for (const module of modules) {
+ if(!module){
+ continue
+ }
+ if (module.customModuleToggle) {
+ costomModuleToggles += '\n' + module.customModuleToggle + '\n'
+ }
+ }
+ return costomModuleToggles
+}
+
export async function applyModule() {
const sel = await alertModuleSelect()
if (!sel) {
From b771105025201179e85143adff3fbe6b4fafed14 Mon Sep 17 00:00:00 2001
From: bangonicdd <157843588+bangonicdd2@users.noreply.github.com>
Date: Fri, 7 Feb 2025 01:26:21 +0900
Subject: [PATCH 2/3] fix: disable module before remove
---
src/lib/Setting/Pages/Module/ModuleSettings.svelte | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/lib/Setting/Pages/Module/ModuleSettings.svelte b/src/lib/Setting/Pages/Module/ModuleSettings.svelte
index 4abaa0ed..80297193 100644
--- a/src/lib/Setting/Pages/Module/ModuleSettings.svelte
+++ b/src/lib/Setting/Pages/Module/ModuleSettings.svelte
@@ -82,6 +82,10 @@
e.stopPropagation()
const d = await alertConfirm(`${language.removeConfirm}` + rmodule.name)
if(d){
+ if(DBState.db.enabledModules.includes(rmodule.id)){
+ DBState.db.enabledModules.splice(DBState.db.enabledModules.indexOf(rmodule.id), 1)
+ DBState.db.enabledModules = DBState.db.enabledModules
+ }
const index = DBState.db.modules.findIndex((v) => v.id === rmodule.id)
DBState.db.modules.splice(index, 1)
DBState.db.modules = DBState.db.modules
From b4e3e08be8b4633372bccad8ffceb499f19eb9f0 Mon Sep 17 00:00:00 2001
From: bangonicdd <157843588+bangonicdd2@users.noreply.github.com>
Date: Fri, 7 Feb 2025 13:00:39 +0900
Subject: [PATCH 3/3] fix: toggles should be reactive
---
src/lib/SideBars/SideChatList.svelte | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/lib/SideBars/SideChatList.svelte b/src/lib/SideBars/SideChatList.svelte
index 26053bc8..3c2a454e 100644
--- a/src/lib/SideBars/SideChatList.svelte
+++ b/src/lib/SideBars/SideChatList.svelte
@@ -18,8 +18,6 @@
import { getChatBranches } from "src/ts/gui/branches";
import { getModuleToggles } from "src/ts/process/modules";
- let parsedCustomToggles: [string, string][] = parseKeyValue(DBState.db.customPromptTemplateToggle + getModuleToggles())
-
interface Props {
chara: character|groupChat;
}
@@ -224,12 +222,12 @@
{#if DBState.db.characters[$selectedCharID]?.chaId !== '§playground'}
- {#if parsedCustomToggles.length > 4}
+ {#if parseKeyValue(DBState.db.customPromptTemplateToggle + getModuleToggles()).length > 4}
- {#each parsedCustomToggles as toggle}
+ {#each parseKeyValue(DBState.db.customPromptTemplateToggle + getModuleToggles()) as toggle}
{
DBState.db.globalChatVariables[`toggle_${toggle[0]}`] = DBState.db.globalChatVariables[`toggle_${toggle[0]}`] === '1' ? '0' : '1'
@@ -242,11 +240,11 @@
{/if}
- {:else if parsedCustomToggles.length > 0}
+ {:else if parseKeyValue(DBState.db.customPromptTemplateToggle + getModuleToggles()).length > 0}
- {#each parsedCustomToggles as toggle}
+ {#each parseKeyValue(DBState.db.customPromptTemplateToggle + getModuleToggles()) as toggle}
{
DBState.db.globalChatVariables[`toggle_${toggle[0]}`] = DBState.db.globalChatVariables[`toggle_${toggle[0]}`] === '1' ? '0' : '1'