This commit is contained in:
kwaroran
2024-12-01 17:15:02 +09:00
parent 8a6cfedcda
commit 6231192dca

View File

@@ -720,7 +720,7 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
if(achara.type === 'group'){ if(achara.type === 'group'){
return "" return ""
} }
return achara.personality return risuChatParser(achara.personality, matcherArg)
} }
case 'description': case 'description':
case 'char_desc':{ case 'char_desc':{
@@ -729,7 +729,7 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
if(achara.type === 'group'){ if(achara.type === 'group'){
return "" return ""
} }
return achara.desc return risuChatParser(achara.desc, matcherArg)
} }
case 'scenario':{ case 'scenario':{
const argChara = chara const argChara = chara
@@ -737,7 +737,7 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
if(achara.type === 'group'){ if(achara.type === 'group'){
return "" return ""
} }
return achara.scenario return risuChatParser(achara.scenario, matcherArg)
} }
case 'example_dialogue': case 'example_dialogue':
case 'example_message':{ case 'example_message':{
@@ -746,15 +746,15 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
if(achara.type === 'group'){ if(achara.type === 'group'){
return "" return ""
} }
return achara.exampleMessage return risuChatParser(achara.exampleMessage, matcherArg)
} }
case 'persona': case 'persona':
case 'user_persona':{ case 'user_persona':{
return getPersonaPrompt() return risuChatParser(getPersonaPrompt(), matcherArg)
} }
case 'main_prompt': case 'main_prompt':
case 'system_prompt':{ case 'system_prompt':{
return db.mainPrompt return risuChatParser(db.mainPrompt, matcherArg)
} }
case 'lorebook': case 'lorebook':
case 'world_info':{ case 'world_info':{
@@ -765,44 +765,47 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
const characterLore = (achara.type === 'group') ? [] : (achara.globalLore ?? []) const characterLore = (achara.type === 'group') ? [] : (achara.globalLore ?? [])
const chatLore = chat.localLore ?? [] const chatLore = chat.localLore ?? []
const fullLore = characterLore.concat(chatLore.concat(getModuleLorebooks())) const fullLore = characterLore.concat(chatLore.concat(getModuleLorebooks()))
return fullLore.map((f) => { return makeArray(fullLore.map((v) => {
return JSON.stringify(f) return JSON.stringify(v)
}).join("§\n") }))
} }
case 'history': case 'history':
case 'messages':{ case 'messages':{
const selchar = db.characters[get(selectedCharID)] const selchar = db.characters[get(selectedCharID)]
const chat = selchar.chats[selchar.chatPage] const chat = selchar.chats[selchar.chatPage]
return chat.message.map((f) => { return makeArray(chat.message.concat([{
return f.role + ': ' + f.data role: 'char',
}).join("§\n") data: chat.fmIndex === -1 ? selchar.firstMessage : selchar.alternateGreetings[chat.fmIndex]
}]).map((v) => {
v = safeStructuredClone(v)
v.data = risuChatParser(v.data, matcherArg)
return JSON.stringify(v)
}))
} }
case 'user_history': case 'user_history':
case 'user_messages':{ case 'user_messages':{
const selchar = db.characters[get(selectedCharID)] const selchar = db.characters[get(selectedCharID)]
const chat = selchar.chats[selchar.chatPage] const chat = selchar.chats[selchar.chatPage]
return chat.message.map((f) => { return makeArray(chat.message.filter((v) => {
if(f.role === 'user'){ return v.role === 'user'
return f.data }).map((v) => {
} v = safeStructuredClone(v)
return '' v.data = risuChatParser(v.data, matcherArg)
}).filter((f) => { return JSON.stringify(v)
return f !== '' }))
}).join("§\n")
} }
case 'char_history': case 'char_history':
case 'char_messages':{ case 'char_messages':{
const selchar = db.characters[get(selectedCharID)] const selchar = db.characters[get(selectedCharID)]
const chat = selchar.chats[selchar.chatPage] const chat = selchar.chats[selchar.chatPage]
return chat.message.map((f) => { return makeArray(chat.message.filter((v) => {
if(f.role === 'char'){ return v.role === 'char'
return f.data }).map((v) => {
} v = safeStructuredClone(v)
return '' v.data = risuChatParser(v.data, matcherArg)
}).filter((f) => { return JSON.stringify(v)
return f !== '' }))
}).join("§\n")
} }
case 'ujb': case 'ujb':
case 'global_note': case 'global_note':
@@ -1038,9 +1041,9 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
if(!selchar || selchar.type === 'group'){ if(!selchar || selchar.type === 'group'){
return '' return ''
} }
return selchar.additionalAssets?.map((f) => { return makeArray(selchar.additionalAssets?.map((f) => {
return f[0] return f[0]
})?.join('§') ?? '' }))
} }
case 'prefill_supported':{ case 'prefill_supported':{
return db.aiModel.startsWith('claude') ? '1' : '0' return db.aiModel.startsWith('claude') ? '1' : '0'
@@ -1286,7 +1289,9 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
} }
case 'arraypush': case 'arraypush':
case 'array_push':{ case 'array_push':{
return arra[1] + '§' + arra[2] const arr = parseArray(arra[1])
arr.push(arra[2])
return makeArray(arr)
} }
case 'arraysplice': case 'arraysplice':
case 'array_splice':{ case 'array_splice':{
@@ -1351,14 +1356,13 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
const start = arr.length > 1 ? Number(arr[0]) : 0 const start = arr.length > 1 ? Number(arr[0]) : 0
const end = arr.length > 1 ? Number(arr[1]) : Number(arr[0]) const end = arr.length > 1 ? Number(arr[1]) : Number(arr[0])
const step = arr.length > 2 ? Number(arr[2]) : 1 const step = arr.length > 2 ? Number(arr[2]) : 1
let out = '' let out:string[] = []
for(let i=start;i<end;i+=step){ for(let i=start;i<end;i+=step){
out += i.toString() out.push(i.toString())
if(i + step < end){
out += '§'
} }
}
return out return makeArray(out)
} }
case 'date': case 'date':
case 'time': case 'time':