[feat] added if statements
This commit is contained in:
@@ -283,7 +283,8 @@ function wppParser(data:string){
|
|||||||
|
|
||||||
|
|
||||||
const rgx = /(?:{{|<)(.+?)(?:}}|>)/gm
|
const rgx = /(?:{{|<)(.+?)(?:}}|>)/gm
|
||||||
const matcher = (p1:string,matcherArg:{chatID:number,db:Database,chara:character|string,rmVar:boolean}) => {
|
type matcherArg = {chatID:number,db:Database,chara:character|string,rmVar:boolean}
|
||||||
|
const matcher = (p1:string,matcherArg:matcherArg) => {
|
||||||
const lowerCased = p1.toLocaleLowerCase()
|
const lowerCased = p1.toLocaleLowerCase()
|
||||||
const chatID = matcherArg.chatID
|
const chatID = matcherArg.chatID
|
||||||
const db = matcherArg.db
|
const db = matcherArg.db
|
||||||
@@ -457,7 +458,7 @@ const matcher = (p1:string,matcherArg:{chatID:number,db:Database,chara:character
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
const smMatcher = (p1:string,matcherArg:{db:Database,chara:character|string,rmVar:boolean}) => {
|
const smMatcher = (p1:string,matcherArg:matcherArg) => {
|
||||||
const lowerCased = p1.toLocaleLowerCase()
|
const lowerCased = p1.toLocaleLowerCase()
|
||||||
const db = matcherArg.db
|
const db = matcherArg.db
|
||||||
const chara = matcherArg.chara
|
const chara = matcherArg.chara
|
||||||
@@ -485,6 +486,27 @@ const smMatcher = (p1:string,matcherArg:{db:Database,chara:character|string,rmVa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const blockMatcher = (p1:string,matcherArg:matcherArg) => {
|
||||||
|
const bn = p1.indexOf('\n')
|
||||||
|
|
||||||
|
if(bn === -1){
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
const logic = p1.substring(0, bn)
|
||||||
|
const content = p1.substring(bn + 1)
|
||||||
|
const statement = logic.split(" ", 2)
|
||||||
|
|
||||||
|
|
||||||
|
if(["","0","-1"].includes(statement[1])){
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
|
||||||
|
return content.trim()
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
export function risuChatParser(da:string, arg:{
|
export function risuChatParser(da:string, arg:{
|
||||||
chatID?:number
|
chatID?:number
|
||||||
db?:Database
|
db?:Database
|
||||||
@@ -522,7 +544,7 @@ export function risuChatParser(da:string, arg:{
|
|||||||
while(pointer < da.length){
|
while(pointer < da.length){
|
||||||
switch(da[pointer]){
|
switch(da[pointer]){
|
||||||
case '{':{
|
case '{':{
|
||||||
if(da[pointer + 1] !== '{'){
|
if(da[pointer + 1] !== '{' && da[pointer + 1] !== '#'){
|
||||||
nested[0] += da[pointer]
|
nested[0] += da[pointer]
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@@ -536,6 +558,17 @@ export function risuChatParser(da:string, arg:{
|
|||||||
v[nested.length] = 2
|
v[nested.length] = 2
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
case '#':{
|
||||||
|
if(da[pointer + 1] !== '}' || nested.length === 1 || v[nested.length] !== 1){
|
||||||
|
nested[0] += da[pointer]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
pointer++
|
||||||
|
const dat = nested.shift()
|
||||||
|
const mc = blockMatcher(dat, matcherObj)
|
||||||
|
nested[0] += mc ?? `{#${dat}#}`
|
||||||
|
break
|
||||||
|
}
|
||||||
case '}':{
|
case '}':{
|
||||||
if(da[pointer + 1] !== '}' || nested.length === 1 || v[nested.length] !== 1){
|
if(da[pointer + 1] !== '}' || nested.length === 1 || v[nested.length] !== 1){
|
||||||
nested[0] += da[pointer]
|
nested[0] += da[pointer]
|
||||||
|
|||||||
Reference in New Issue
Block a user