diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index 4e39e075..84f6bfc5 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -8,7 +8,7 @@
},
"package": {
"productName": "RisuAI",
- "version": "1.24.1"
+ "version": "1.24.2"
},
"tauri": {
"allowlist": {
diff --git a/src/lang/cn.ts b/src/lang/cn.ts
index 43254ce8..57f48395 100644
--- a/src/lang/cn.ts
+++ b/src/lang/cn.ts
@@ -303,4 +303,6 @@ export const languageChinese = {
tags: "标签",
copied: "已复制",
useChatCopy: "使用聊天复制",
+ autoTranslateInput: "使用自动翻译输入",
+ enterMessageForTranslateToEnglish: "输入要翻译为英语的消息",
}
\ No newline at end of file
diff --git a/src/lang/en.ts b/src/lang/en.ts
index ecd47d60..14a67f82 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -307,4 +307,10 @@ export const languageEnglish = {
backgroundHTML: "Background Embedding",
copied: "Copied",
useChatCopy: "Use Chat Message Copy",
+ autoTranslateInput: "Auto Translate Input",
+ enterMessageForTranslateToEnglish: "Enter Message for Translate to English",
+ recent: 'Recent',
+ downloads: 'Downloads',
+ trending: "Trending"
+
}
\ No newline at end of file
diff --git a/src/lang/ko.ts b/src/lang/ko.ts
index c8a0a245..dd6aa543 100644
--- a/src/lang/ko.ts
+++ b/src/lang/ko.ts
@@ -279,4 +279,6 @@ export const languageKorean = {
backgroundHTML: "백그라운드 임베딩",
copied: "복사됨",
useChatCopy: "채팅 메시지 복사 사용",
+ autoTranslateInput: "입력 자동 번역",
+ enterMessageForTranslateToEnglish: "영어로 번역할 메시지를 입력해주세요",
}
\ No newline at end of file
diff --git a/src/lib/ChatScreens/BackgroundDom.svelte b/src/lib/ChatScreens/BackgroundDom.svelte
index 193e6dea..999511a3 100644
--- a/src/lib/ChatScreens/BackgroundDom.svelte
+++ b/src/lib/ChatScreens/BackgroundDom.svelte
@@ -11,7 +11,7 @@
function checkUpdate(){
if(selectedId > 0 && lastdb){
- if(lastdb.characters[selectedId].backgroundHTML !== backgroundHTML){
+ if(lastdb.characters[selectedId] && lastdb.characters[selectedId].backgroundHTML !== backgroundHTML){
backgroundHTML = lastdb.characters[selectedId].backgroundHTML
currentChar = lastdb.characters[selectedId]
}
diff --git a/src/lib/ChatScreens/DefaultChatScreen.svelte b/src/lib/ChatScreens/DefaultChatScreen.svelte
index 8b3da038..403f7ba8 100644
--- a/src/lib/ChatScreens/DefaultChatScreen.svelte
+++ b/src/lib/ChatScreens/DefaultChatScreen.svelte
@@ -16,8 +16,10 @@
import CreatorQuote from "./CreatorQuote.svelte";
import { stopTTS } from "src/ts/process/tts";
import MainMenu from '../UI/MainMenu.svelte';
+ import Help from '../Others/Help.svelte';
- let messageInput = ''
+ let messageInput:string = ''
+ let messageInputTranslate:string = ''
let openMenu = false
export let openChatList = false
let loadPages = 30
@@ -26,6 +28,7 @@
let rerollid = -1
let lastCharId = -1
let doingChatInputTranslate = false
+
async function send() {
let selectedChar = $selectedCharID
console.log('send')
@@ -67,10 +70,11 @@
}
}
messageInput = ''
+ messageInputTranslate = ''
$DataBase.characters[selectedChar].chats[$DataBase.characters[selectedChar].chatPage].message = cha
rerolls = []
await sleep(10)
- updateInputSize()
+ updateInputSizeAll()
await sendChatMain()
}
@@ -170,7 +174,21 @@
export let customStyle = ''
let inputHeight = "44px"
let inputEle:HTMLTextAreaElement
+ let inputTranslateHeight = "44px"
+ let inputTranslateEle:HTMLTextAreaElement
+ function updateInputSizeAll() {
+ updateInputSize()
+ updateInputTranslateSize()
+ }
+
+ function updateInputTranslateSize() {
+ if(inputTranslateEle) {
+ inputTranslateEle.style.height = "0";
+ inputTranslateHeight = (inputTranslateEle.scrollHeight) + "px";
+ inputTranslateEle.style.height = inputTranslateHeight
+ }
+ }
function updateInputSize() {
if(inputEle){
inputEle.style.height = "0";
@@ -179,7 +197,26 @@
}
}
- $: updateInputSize()
+ $: updateInputSizeAll()
+
+ function updateInputTransateMessage(reverse: boolean) {
+ if(reverse && messageInputTranslate === '') {
+ messageInput = ''
+ return
+ }
+ if(!reverse && messageInput === '') {
+ messageInputTranslate = ''
+ return
+ }
+ translate(reverse ? messageInputTranslate : messageInput, reverse).then((translatedMessage) => {
+ if(translatedMessage){
+ if(reverse)
+ messageInput = translatedMessage
+ else
+ messageInputTranslate = translatedMessage
+ }
+ })
+ }
{
@@ -211,7 +248,7 @@
e.preventDefault()
}
}}
- on:input={updateInputSize}
+ on:input={()=>{updateInputSizeAll();updateInputTransateMessage(false)}}
style:height={inputHeight}
/>
@@ -234,6 +271,33 @@
class="mr-2 bg-gray-500 flex justify-center items-center text-white w-12 h-12 rounded-md hover:bg-green-500 transition-colors">
+ {#if $DataBase.useAutoTranslateInput && $DataBase.useExperimental}
+
+
+
+ {/if}
+
{#if $DataBase.useAutoSuggestions}
messageInput=msg} {send}/>
{/if}
@@ -362,7 +426,18 @@
{language.translateInput}
+ {#if $DataBase.useExperimental}
+ {
+ $DataBase.useAutoTranslateInput = !$DataBase.useAutoTranslateInput
+ }}>
+
+ {language.autoTranslateInput}
+
+
+ {/if}
+
{/if}
+
{
$DataBase.useAutoSuggestions = !$DataBase.useAutoSuggestions
}}>
diff --git a/src/lib/ChatScreens/Suggestion.svelte b/src/lib/ChatScreens/Suggestion.svelte
index 9ae4309f..2cd0c447 100644
--- a/src/lib/ChatScreens/Suggestion.svelte
+++ b/src/lib/ChatScreens/Suggestion.svelte
@@ -11,6 +11,7 @@
import { onDestroy } from 'svelte';
import { processScript } from "src/ts/process/scripts";
import { get } from "svelte/store";
+ import { ParseMarkdown } from "src/ts/parser";
export let send: () => any;
export let messageInput:(string:string) => any;
@@ -68,10 +69,9 @@
role:'system',
content: replacePlaceholders($DataBase.autoSuggestPrompt, currentChar.name)
}
- ,
- {
+ ,{
role: 'user',
- content: lastMessages.map(b=>(b.role==='char'? 'assistant' : 'user')+":"+b.data).reduce((a,b)=>a+','+b)
+ content: lastMessages.map(b=>(b.role==='char'? currentChar.name : $DataBase.username)+":"+b.data).reduce((a,b)=>a+','+b)
}
]
@@ -118,16 +118,18 @@
{language.creatingSuggestions}
{:else if !$doingChat}
-
-
-
+ {#if $DataBase.translator !== ''}
+
+
+
+ {/if}
+
+ {#if $DataBase.useExperimental}
+
+
+ {language.autoTranslateInput}
+
+
+ {/if}
{/if}
\ No newline at end of file
diff --git a/src/lib/UI/Hub.svelte b/src/lib/UI/Hub.svelte
index 20568073..09c8db45 100644
--- a/src/lib/UI/Hub.svelte
+++ b/src/lib/UI/Hub.svelte
@@ -3,6 +3,7 @@
import { ArrowLeft, ArrowRight, DownloadIcon, FlagIcon, MenuIcon, SearchIcon, XIcon } from "lucide-svelte";
import { alertConfirm, alertInput, alertNormal } from "src/ts/alert";
import { parseMarkdownSafe } from "src/ts/parser";
+ import { language } from "src/lang";
let openedData:null|{
name:string
@@ -23,14 +24,18 @@
}[] = []
let page = 0
+ let sort = ''
let search = ''
let menuOpen = false
+ let nsfw = false
async function getHub(){
charas = await getRisuHub({
search: search,
- page: page
+ page: page,
+ nsfw: nsfw,
+ sort: sort
})
}
@@ -38,7 +43,7 @@
-
+
+
+
+
+
+
+
+
{#key charas}
{#each charas as chara}
diff --git a/src/ts/characterCards.ts b/src/ts/characterCards.ts
index eb778b68..ef7603d6 100644
--- a/src/ts/characterCards.ts
+++ b/src/ts/characterCards.ts
@@ -654,7 +654,9 @@ export async function shareRisuHub(char:character, arg:{
export async function getRisuHub(arg?:{
search?:string,
- page?:number
+ page?:number,
+ nsfw?:boolean
+ sort?:string
}):Promise<{
name:string
desc: string
diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts
index b55e788a..74931499 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.24.1'
+export let appVer = '1.24.2'
export function setDatabase(data:Database){
if(checkNullish(data.characters)){
@@ -502,8 +502,9 @@ export interface Database{
useAutoSuggestions:boolean
autoSuggestPrompt:string,
claudeAPIKey:string,
- novellistAPI:string
useChatCopy:boolean,
+ novellistAPI:string,
+ useAutoTranslateInput:boolean
}
interface hordeConfig{
diff --git a/version.json b/version.json
index 5539bf1a..bb93f1ee 100644
--- a/version.json
+++ b/version.json
@@ -1 +1 @@
-{"version":"1.24.1"}
\ No newline at end of file
+{"version":"1.24.2"}
\ No newline at end of file