Skip to content

Commit

Permalink
1.92.0 (#341)
Browse files Browse the repository at this point in the history
# PR Checklist
- [ ] Did you check if it works normally in all models? *ignore this
when it dosen't uses models*
- [ ] Did you check if it works normally in all of web, local and node
hosted versions? if it dosen't, did you blocked it in those versions?
- [ ] Did you added a type def?

# Description
  • Loading branch information
kwaroran authored Apr 3, 2024
2 parents 213ac33 + 74c5b5a commit 6aa3d36
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 21 deletions.
2 changes: 1 addition & 1 deletion src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
},
"package": {
"productName": "RisuAI",
"version": "1.91.0"
"version": "1.92.0"
},
"tauri": {
"allowlist": {
Expand Down
28 changes: 11 additions & 17 deletions src/etc/patchNote.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,17 @@
export const patchNote = {
version: "1.91",
version: "1.92",
content:
`
# Update 1.91.0
- {{#if A}} now trims the whitespace inside the content
- Old {{time}} and {{date}} is renamed to {{message_time}} and {{message_date}}
- Added {{lastcharmessage}} as allias for {{previous_char_chat}}
- Added {{lastusermessage}} as allias for {{previous_user_chat}}
- Added {{newline}} as allias for {{br}}
- Added {{lastmessage}}, which returns the last message sent in the current chat
- Added {{maxcontext}}, which returns the maximum context length
- Added {{lastmessageid}}, which returns the index of the last message sent in the current chat
- Added {{pow::A::B}}, which returns A raised to the power of B
- Added {{pick::A::B...}} which returns a random element from the list, but is consistent across the same message
- Added {{time}}, which returns the current time in the format HH:MM:SS in your timezone
- Added {{date}}, which returns the current date in the format YYYY-MM-DD in your timezone
- Added {{isotime}}, which returns the current time in the format HH:MM:SS in UTC
- Added {{isodate}}, which returns the current date in the format YYYY-MM-DD in UTC
- Added {{#if-pure A}} which is the same as {{#if A}}, but does not trim the whitespace inside the content
# Update 1.92.0
- Added {{remaind::A::B}} which will return remainder of A divided by B
- Added {{array_element::A::B}} which will return Bth element of array A
- Added {{array_shift::A}} which will return A without first element
- Added {{array_pop::A}} which will return A without last element
- Added {{array_push::A::B}} which will return A with B pushed at the end
- Added {{array_splice::A::B::C::D}} which will return A with C elements removed starting from Bth element and D elements added at Bth position
- Added {{array::A::B...}} which will return an array with A, B and so on
- Added {{datetimeformat::A}} which will return formatted date time string according to A
- Fixed {{#if}} not working in some cases
`
}

Expand Down
60 changes: 59 additions & 1 deletion src/ts/parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -807,6 +807,9 @@ const matcher = (p1:string,matcherArg:matcherArg) => {
case 'abs':{
return Math.abs(Number(arra[1])).toString()
}
case 'remaind':{
return (Number(arra[1]) % Number(arra[2])).toString()
}
case 'previous_chat_log':{
const selchar = db.characters[get(selectedCharID)]
const chat = selchar?.chats?.[selchar.chatPage]
Expand All @@ -821,6 +824,38 @@ const matcher = (p1:string,matcherArg:matcherArg) => {
case 'pow':{
return Math.pow(Number(arra[1]), Number(arra[2])).toString()
}
case 'arrayelement':
case 'array_element':{
return arra[1].split('§')[Number(arra[2])]
}
case 'arrayshift':
case 'array_shift':{
const arr = arra[1].split('§')
arr.shift()
return arr.join('§')
}
case 'arraypop':
case 'array_pop':{
const arr = arra[1].split('§')
arr.pop()
return arr.join('§')
}
case 'arraypush':
case 'array_push':{
return arra[1] + '§' + arra[2]
}
case 'arraysplice':
case 'array_splice':{
const arr = arra[1].split('§')
arr.splice(Number(arra[2]), Number(arra[3]), arra[4])
return arr.join('§')
}
case 'makearray':
case 'array':
case 'a':
case 'make_array':{
return arra.slice(1).join('§')
}
}
}
if(p1.startsWith('random')){
Expand Down Expand Up @@ -873,6 +908,28 @@ const matcher = (p1:string,matcherArg:matcherArg) => {
}
return (Math.floor(Math.random() * maxRoll) + 1).toString()
}
if(p1.startsWith('datetimeformat')){
const date = new Date()
let main = p1.substring("datetimeformat".length + 1)
if(!main){
return ''
}
if(main.startsWith(':')){
main = main.substring(1)
}
return main
.replace(/YYYY/g, date.getFullYear().toString())
.replace(/YY/g, date.getFullYear().toString().substring(2))
.replace(/MM?/g, (date.getMonth() + 1).toString().padStart(2, '0'))
.replace(/DD?/g, date.getDate().toString().padStart(2, '0'))
.replace(/DDDD?/g, (date.getDay() + (date.getMonth() * 30)).toString())
.replace(/HH?/g, date.getHours().toString().padStart(2, '0'))
.replace(/hh?/g, (date.getHours() % 12).toString().padStart(2, '0'))
.replace(/mm?/g, date.getMinutes().toString().padStart(2, '0'))
.replace(/ss?/g, date.getSeconds().toString().padStart(2, '0'))
.replace(/A/g, date.getHours() >= 12 ? 'PM' : 'AM')
.replace(/MMMM?/g, Intl.DateTimeFormat('en', { month: 'long' }).format(date))
}
return null
} catch (error) {
return null
Expand Down Expand Up @@ -945,7 +1002,7 @@ type blockMatch = 'ignore'|'parse'|'nothing'|'parse-pure'

function blockStartMatcher(p1:string,matcherArg:matcherArg):blockMatch{
if(p1.startsWith('#if') || p1.startsWith('#if_pure ')){
const statement = p1.substring(p1.indexOf(' ') + 1)
const statement = p1.split(' ', 2)
const state = statement[1]
if(state === 'true' || state === '1'){
return p1.startsWith('#if_pure') ? 'parse-pure' : 'parse'
Expand Down Expand Up @@ -1077,6 +1134,7 @@ export function risuChatParser(da:string, arg:{
}
const matchResult = blockStartMatcher(dat, matcherObj)
if(matchResult === 'nothing'){
nested[0] += `{{${dat}}}`
break
}
else{
Expand Down
2 changes: 1 addition & 1 deletion src/ts/storage/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import type { OobaChatCompletionRequestParams } from '../model/ooba';

export const DataBase = writable({} as any as Database)
export const loadedStore = writable(false)
export let appVer = "1.91.0"
export let appVer = "1.92.0"
export let webAppSubVer = ''

export function setDatabase(data:Database){
Expand Down
2 changes: 1 addition & 1 deletion version.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":"1.91.0"}
{"version":"1.92.0"}

0 comments on commit 6aa3d36

Please sign in to comment.