diff --git a/src/ts/parser.ts b/src/ts/parser.ts
index 94acbda3..8dd5f3c2 100644
--- a/src/ts/parser.ts
+++ b/src/ts/parser.ts
@@ -5,7 +5,7 @@ import { getFileSrc } from './storage/globalApi';
import { processScriptFull } from './process/scripts';
import { get } from 'svelte/store';
import css from '@adobe/css-tools'
-import { CurrentChat, SizeStore, selectedCharID } from './stores';
+import { CurrentCharacter, CurrentChat, SizeStore, selectedCharID } from './stores';
import { calcString } from './process/infunctions';
import { findCharacterbyId, parseKeyValue, sfc32, sleep, uuidtoNumber } from './util';
import { getInlayImage, writeInlayImage } from './process/files/image';
@@ -242,79 +242,101 @@ async function renderHighlightableMarkdown(data:string) {
}
-export const assetRegex = /{{(raw|img|video|audio|bg|emotion|asset|video-img)::(.+?)}}/g
+export const assetRegex = /{{(raw|img|video|audio|bg|emotion|asset|video-img|source)::(.+?)}}/g
async function parseAdditionalAssets(data:string, char:simpleCharacterArgument|character, mode:'normal'|'back', mode2:'unset'|'pre'|'post' = 'unset'){
const db = get(DataBase)
const assetWidthString = (db.assetWidth && db.assetWidth !== -1 || db.assetWidth === 0) ? `max-width:${db.assetWidth}rem;` : ''
- if(char.additionalAssets || char.emotionImages){
+ let assetPaths:{[key:string]:{
+ path:string
+ ext?:string
+ }} = {}
+ let emoPaths:{[key:string]:{
+ path:string
+ }} = {}
- let assetPaths:{[key:string]:{
- path:string
- ext?:string
- }} = {}
- let emoPaths:{[key:string]:{
- path:string
- }} = {}
-
- if(char.additionalAssets){
- for(const asset of char.additionalAssets){
- const assetPath = await getFileSrc(asset[1])
- assetPaths[asset[0].toLocaleLowerCase()] = {
- path: assetPath,
- ext: asset[2]
- }
+ if(char.additionalAssets){
+ for(const asset of char.additionalAssets){
+ const assetPath = await getFileSrc(asset[1])
+ assetPaths[asset[0].toLocaleLowerCase()] = {
+ path: assetPath,
+ ext: asset[2]
}
}
- if(char.emotionImages){
- for(const emo of char.emotionImages){
- const emoPath = await getFileSrc(emo[1])
- emoPaths[emo[0].toLocaleLowerCase()] = {
- path: emoPath,
- }
+ }
+ if(char.emotionImages){
+ for(const emo of char.emotionImages){
+ const emoPath = await getFileSrc(emo[1])
+ emoPaths[emo[0].toLocaleLowerCase()] = {
+ path: emoPath,
}
}
- const videoExtention = ['mp4', 'webm', 'avi', 'm4p', 'm4v']
- data = data.replaceAll(assetRegex, (full:string, type:string, name:string) => {
- name = name.toLocaleLowerCase()
- if(type === 'emotion'){
- const path = emoPaths[name]?.path
- if(!path){
- return ''
- }
- return ``
- }
- const path = assetPaths[name]
+ }
+ const videoExtention = ['mp4', 'webm', 'avi', 'm4p', 'm4v']
+ let needsSourceAccess = false
+ data = data.replaceAll(assetRegex, (full:string, type:string, name:string) => {
+ name = name.toLocaleLowerCase()
+ if(type === 'emotion'){
+ const path = emoPaths[name]?.path
if(!path){
return ''
}
- switch(type){
- case 'raw':
- return path.path
- case 'img':
- return `
`
- case 'video':
- return ``
- case 'video-img':
- return ``
- case 'audio':
- return ``
- case 'bg':
- if(mode === 'back'){
- return `