From 2ec13a4550960e9604f919c479f666008b2087a3 Mon Sep 17 00:00:00 2001 From: Kwaroran Date: Mon, 6 Jan 2025 00:30:33 +0900 Subject: [PATCH] Modify some parts of PR --- package.json | 1 + pnpm-lock.yaml | 8 +++++ src/lang/en.ts | 4 ++- src/lib/Setting/Pages/AdvancedSettings.svelte | 4 +++ src/lib/Setting/Pages/DisplaySettings.svelte | 4 +++ src/lib/Setting/botpreset.svelte | 35 ++++++++++--------- src/ts/storage/database.svelte.ts | 4 +++ 7 files changed, 43 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 78d71dbf..12fb5a0a 100644 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "@tsconfig/svelte": "^3.0.0", "@types/blueimp-md5": "^2.18.2", "@types/codemirror": "^5.60.15", + "@types/diff": "^6.0.0", "@types/dompurify": "^3.0.5", "@types/libsodium-wrappers-sumo": "^0.7.8", "@types/lodash": "^4.14.202", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc9791e3..8dad0810 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -249,6 +249,9 @@ importers: '@types/codemirror': specifier: ^5.60.15 version: 5.60.15 + '@types/diff': + specifier: ^6.0.0 + version: 6.0.0 '@types/dompurify': specifier: ^3.0.5 version: 3.0.5 @@ -1211,6 +1214,9 @@ packages: '@types/codemirror@5.60.15': resolution: {integrity: sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==} + '@types/diff@6.0.0': + resolution: {integrity: sha512-dhVCYGv3ZSbzmQaBSagrv1WJ6rXCdkyTcDyoNu1MD8JohI7pR7k8wdZEm+mvdxRKXyHVwckFzWU1vJc+Z29MlA==} + '@types/dompurify@3.0.5': resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==} @@ -4865,6 +4871,8 @@ snapshots: dependencies: '@types/tern': 0.23.9 + '@types/diff@6.0.0': {} + '@types/dompurify@3.0.5': dependencies: '@types/trusted-types': 2.0.7 diff --git a/src/lang/en.ts b/src/lang/en.ts index aa4e2a9a..1c4f8c80 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -838,5 +838,7 @@ export const languageEnglish = { showSavingIcon: "Show Saving Icon", pluginVersionWarn: "This is {{plugin_version}} version of the plugin. which is not compatible with this version of RisuAI. please update the plugin to {{required_version}} version.", imageTranslation: "Image Translation", - banCharacterset: 'Auto Regenerate On Characterset' + banCharacterset: 'Auto Regenerate On Characterset', + checkCorruption: "Check Corruption", + showPromptComparison: "Show Prompt Comparison", } \ No newline at end of file diff --git a/src/lib/Setting/Pages/AdvancedSettings.svelte b/src/lib/Setting/Pages/AdvancedSettings.svelte index 0edc1d8a..d92579b8 100644 --- a/src/lib/Setting/Pages/AdvancedSettings.svelte +++ b/src/lib/Setting/Pages/AdvancedSettings.svelte @@ -192,6 +192,10 @@ +
+ + +
{#if DBState.db?.account?.useSync}
diff --git a/src/lib/Setting/Pages/DisplaySettings.svelte b/src/lib/Setting/Pages/DisplaySettings.svelte index 38fe538e..c782357c 100644 --- a/src/lib/Setting/Pages/DisplaySettings.svelte +++ b/src/lib/Setting/Pages/DisplaySettings.svelte @@ -304,6 +304,10 @@
+
+ +
+ {#if DBState.db.textScreenBorder}
{ diff --git a/src/lib/Setting/botpreset.svelte b/src/lib/Setting/botpreset.svelte index 0a6969d4..d4b94a7b 100644 --- a/src/lib/Setting/botpreset.svelte +++ b/src/lib/Setting/botpreset.svelte @@ -8,7 +8,6 @@ import { prebuiltPresets } from "src/ts/process/templates/templates"; import { ShowRealmFrameStore } from "src/ts/stores.svelte"; import type { PromptItem, PromptItemPlain, PromptItemChatML, PromptItemTyped, PromptItemAuthorNote, PromptItemChat } from "src/ts/process/prompt.ts"; - import { diffWordsWithSpace, diffLines } from 'diff'; let editMode = $state(false) interface Props { @@ -112,7 +111,8 @@ return prompt } - function checkDiff(prompt1: string, prompt2: string): string { + async function checkDiff(prompt1: string, prompt2: string): Promise { + const { diffLines } = await import('diff') const lineDiffs = diffLines(prompt1, prompt2) let resultHtml = ''; @@ -123,7 +123,7 @@ if(linePart.removed){ const nextPart = lineDiffs[i + 1] if(nextPart?.added){ - resultHtml += `
${highlightChanges(linePart.value, nextPart.value)}
` + resultHtml += `
${await highlightChanges(linePart.value, nextPart.value)}
` i++; } else{ @@ -148,7 +148,8 @@ return resultHtml } - function highlightChanges(string1: string, string2: string) { + async function highlightChanges(string1: string, string2: string) { + const { diffWordsWithSpace } = await import('diff') const charDiffs = diffWordsWithSpace(string1, string2) return charDiffs @@ -169,7 +170,7 @@ } - function handleDiffMode(id: number) { + async function handleDiffMode(id: number) { if (selectedDiffPreset === id) { selectedDiffPreset = -1 selectedPrompts = [] @@ -193,7 +194,7 @@ } else{ alertWait("Loading...") - const result = checkDiff(selectedPrompts[0], prompt) + const result = await checkDiff(selectedPrompts[0], prompt) alertMd(result) selectedDiffPreset = -1 selectedPrompts = [] @@ -234,16 +235,18 @@ {preset.name} {/if}
-
{ - e.stopPropagation() - handleDiffMode(i) - }} onkeydown={(e) => { - if(e.key === 'Enter'){ - e.currentTarget.click() - } - }}> - -
+ {#if DBState.db.showPromptComparison} +
{ + e.stopPropagation() + handleDiffMode(i) + }} onkeydown={(e) => { + if(e.key === 'Enter'){ + e.currentTarget.click() + } + }}> + +
+ {/if}
{ e.stopPropagation() copyPreset(i) diff --git a/src/ts/storage/database.svelte.ts b/src/ts/storage/database.svelte.ts index 8f7665ff..f15c94be 100644 --- a/src/ts/storage/database.svelte.ts +++ b/src/ts/storage/database.svelte.ts @@ -468,6 +468,8 @@ export function setDatabase(data:Database){ data.assetMaxDifference ??= 4 data.showSavingIcon ??= false data.banCharacterset ??= [] + data.showPromptComparison ??= false + data.checkCorruption ??= true changeLanguage(data.language) setDatabaseLite(data) } @@ -868,6 +870,8 @@ export interface Database{ showSavingIcon:boolean presetRegex: customscript[] banCharacterset:string[] + showPromptComparison:boolean + checkCorruption:boolean } interface SeparateParameters{