Merge branch 'main' of https://github.com/kwaroran/RisuAI
This commit is contained in:
@@ -318,6 +318,9 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
async function updateInputTransateMessage(reverse: boolean) {
|
async function updateInputTransateMessage(reverse: boolean) {
|
||||||
|
if(!DBState.db.useAutoTranslateInput){
|
||||||
|
return
|
||||||
|
}
|
||||||
if(isExpTranslator()){
|
if(isExpTranslator()){
|
||||||
if(!reverse){
|
if(!reverse){
|
||||||
messageInputTranslate = ''
|
messageInputTranslate = ''
|
||||||
|
|||||||
@@ -44,7 +44,12 @@ function nodeObserve(node:HTMLElement){
|
|||||||
if(currentChar.type === 'group'){
|
if(currentChar.type === 'group'){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await runLuaButtonTrigger(currentChar, btnEvent);
|
const triggerResult = await runLuaButtonTrigger(currentChar, btnEvent);
|
||||||
|
|
||||||
|
if(triggerResult){
|
||||||
|
setCurrentChat(triggerResult.chat);
|
||||||
|
}
|
||||||
|
|
||||||
}, {
|
}, {
|
||||||
passive: true,
|
passive: true,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1544,6 +1544,17 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
|
|||||||
}
|
}
|
||||||
return '0'
|
return '0'
|
||||||
}
|
}
|
||||||
|
case 'module_assetlist':{
|
||||||
|
const module = getModules()?.find((f) => {
|
||||||
|
return f.namespace === arra[1]
|
||||||
|
})
|
||||||
|
if(!module){
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
return makeArray(module.assets?.map((f) => {
|
||||||
|
return f[0]
|
||||||
|
}))
|
||||||
|
}
|
||||||
case 'filter':{
|
case 'filter':{
|
||||||
const array = parseArray(arra[1])
|
const array = parseArray(arra[1])
|
||||||
const filterTypes = [
|
const filterTypes = [
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ interface LuaEngineState {
|
|||||||
code: string;
|
code: string;
|
||||||
engine: LuaEngine;
|
engine: LuaEngine;
|
||||||
mutex: Mutex;
|
mutex: Mutex;
|
||||||
|
chat: Chat;
|
||||||
}
|
}
|
||||||
|
|
||||||
let LuaEngines = new Map<string, LuaEngineState>()
|
let LuaEngines = new Map<string, LuaEngineState>()
|
||||||
@@ -53,10 +54,13 @@ export async function runLua(code:string, arg:{
|
|||||||
luaEngineState = {
|
luaEngineState = {
|
||||||
code,
|
code,
|
||||||
engine: await luaFactory.createEngine({injectObjects: true}),
|
engine: await luaFactory.createEngine({injectObjects: true}),
|
||||||
mutex: new Mutex()
|
mutex: new Mutex(),
|
||||||
|
chat
|
||||||
}
|
}
|
||||||
LuaEngines.set(mode, luaEngineState)
|
LuaEngines.set(mode, luaEngineState)
|
||||||
wasEmpty = true
|
wasEmpty = true
|
||||||
|
} else {
|
||||||
|
luaEngineState.chat = chat
|
||||||
}
|
}
|
||||||
return await luaEngineState.mutex.runExclusive(async () => {
|
return await luaEngineState.mutex.runExclusive(async () => {
|
||||||
if (wasEmpty || code !== luaEngineState.code) {
|
if (wasEmpty || code !== luaEngineState.code) {
|
||||||
@@ -104,79 +108,58 @@ export async function runLua(code:string, arg:{
|
|||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
const message = luaEngineState.chat.message?.at(index)
|
||||||
const message = chat.message?.at(index)
|
|
||||||
if(message){
|
if(message){
|
||||||
message.data = value
|
message.data = value
|
||||||
}
|
}
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
})
|
||||||
luaEngine.global.set('setChatRole', (id:string, index:number, value:string) => {
|
luaEngine.global.set('setChatRole', (id:string, index:number, value:string) => {
|
||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
const message = luaEngineState.chat.message?.at(index)
|
||||||
const message = chat.message?.at(index)
|
|
||||||
if(message){
|
if(message){
|
||||||
message.role = value === 'user' ? 'user' : 'char'
|
message.role = value === 'user' ? 'user' : 'char'
|
||||||
}
|
}
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
})
|
||||||
luaEngine.global.set('cutChat', (id:string, start:number, end:number) => {
|
luaEngine.global.set('cutChat', (id:string, start:number, end:number) => {
|
||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
luaEngineState.chat.message = luaEngineState.chat.message.slice(start,end)
|
||||||
chat.message = chat.message.slice(start,end)
|
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
})
|
||||||
luaEngine.global.set('removeChat', (id:string, index:number) => {
|
luaEngine.global.set('removeChat', (id:string, index:number) => {
|
||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
luaEngineState.chat.message.splice(index, 1)
|
||||||
chat.message.splice(index, 1)
|
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
})
|
||||||
luaEngine.global.set('addChat', (id:string, role:string, value:string) => {
|
luaEngine.global.set('addChat', (id:string, role:string, value:string) => {
|
||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
|
||||||
let roleData:'user'|'char' = role === 'user' ? 'user' : 'char'
|
let roleData:'user'|'char' = role === 'user' ? 'user' : 'char'
|
||||||
chat.message.push({role: roleData, data: value})
|
luaEngineState.chat.message.push({role: roleData, data: value})
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
})
|
||||||
luaEngine.global.set('insertChat', (id:string, index:number, role:string, value:string) => {
|
luaEngine.global.set('insertChat', (id:string, index:number, role:string, value:string) => {
|
||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
|
||||||
let roleData:'user'|'char' = role === 'user' ? 'user' : 'char'
|
let roleData:'user'|'char' = role === 'user' ? 'user' : 'char'
|
||||||
chat.message.splice(index, 0, {role: roleData, data: value})
|
luaEngineState.chat.message.splice(index, 0, {role: roleData, data: value})
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
|
||||||
luaEngine.global.set('removeChat', (id:string, index:number) => {
|
|
||||||
if(!LuaSafeIds.has(id)){
|
|
||||||
return
|
|
||||||
}
|
|
||||||
chat = getCurrentChat()
|
|
||||||
chat.message.splice(index, 1)
|
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
})
|
||||||
luaEngine.global.set('getChatLength', (id:string) => {
|
luaEngine.global.set('getChatLength', (id:string) => {
|
||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
return luaEngineState.chat.message.length
|
||||||
return chat.message.length
|
|
||||||
})
|
})
|
||||||
luaEngine.global.set('getFullChatMain', (id:string) => {
|
luaEngine.global.set('getFullChatMain', (id:string) => {
|
||||||
chat = getCurrentChat()
|
const data = JSON.stringify(luaEngineState.chat.message.map((v) => {
|
||||||
const data = JSON.stringify(chat.message.map((v) => {
|
|
||||||
return {
|
return {
|
||||||
role: v.role,
|
role: v.role,
|
||||||
data: v.data
|
data: v.data,
|
||||||
|
time: v.time ?? 0
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
return data
|
return data
|
||||||
@@ -187,14 +170,12 @@ export async function runLua(code:string, arg:{
|
|||||||
if(!LuaSafeIds.has(id)){
|
if(!LuaSafeIds.has(id)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
luaEngineState.chat.message = realValue.map((v) => {
|
||||||
chat.message = realValue.map((v) => {
|
|
||||||
return {
|
return {
|
||||||
role: v.role,
|
role: v.role,
|
||||||
data: v.data
|
data: v.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
setCurrentChat(chat)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
luaEngine.global.set('logMain', (value:string) => {
|
luaEngine.global.set('logMain', (value:string) => {
|
||||||
@@ -550,6 +531,7 @@ export async function runLua(code:string, arg:{
|
|||||||
|
|
||||||
LuaSafeIds.delete(accessKey)
|
LuaSafeIds.delete(accessKey)
|
||||||
LuaLowLevelIds.delete(accessKey)
|
LuaLowLevelIds.delete(accessKey)
|
||||||
|
chat = luaEngineState.chat
|
||||||
|
|
||||||
return {
|
return {
|
||||||
stopSending, chat, res
|
stopSending, chat, res
|
||||||
|
|||||||
@@ -1151,7 +1151,7 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{
|
|||||||
if(triggerCodeResult.stopSending){
|
if(triggerCodeResult.stopSending){
|
||||||
stopSending = true
|
stopSending = true
|
||||||
}
|
}
|
||||||
chat = getCurrentChat()
|
chat = triggerCodeResult.chat
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user