From 244febc911ac757f212a4a1135d3d8cfad29bc4b Mon Sep 17 00:00:00 2001 From: kwaroran Date: Tue, 14 Nov 2023 17:55:48 +0900 Subject: [PATCH] [console] update --- src/lib/ChatScreens/Chat.svelte | 43 +++++++++++++++++---------------- src/ts/parser.ts | 26 +++++++++++--------- 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/src/lib/ChatScreens/Chat.svelte b/src/lib/ChatScreens/Chat.svelte index 2246153f..e0baad00 100644 --- a/src/lib/ChatScreens/Chat.svelte +++ b/src/lib/ChatScreens/Chat.svelte @@ -88,25 +88,26 @@ } } catch (error) {} } - if(translateText){ - const marked = await ParseMarkdown(data, charArg, mode, chatID) - translating = true - const translated = await translateHTML(marked, false) - translating = false - lastParsed = translated - lastCharArg = charArg - return translated - } - else{ - const marked = await ParseMarkdown(data, charArg, mode, chatID) - lastParsed = marked - lastCharArg = charArg - return marked - } + if(translateText){ + const marked = await ParseMarkdown(data, charArg, mode, chatID) + translating = true + const translated = await translateHTML(marked, false) + translating = false + lastParsed = translated + lastCharArg = charArg + return translated + } + else{ + const marked = await ParseMarkdown(data, charArg, mode, chatID) + lastParsed = marked + lastCharArg = charArg + return marked + } } catch (error) { //retry if(tries > 2){ - alertError(`Error while parsing chat message: ${error}`) + + alertError(`Error while parsing chat message: ${translateText}, ${error.message}`) return data } return await markParsing(data, charArg, mode, chatID, translateText, (tries ?? 0) + 1) @@ -194,11 +195,11 @@ style:font-size="{0.875 * ($DataBase.zoomsize / 100)}rem" style:line-height="{1.25 * ($DataBase.zoomsize / 100)}rem" > - {#await markParsing(msgDisplay, character, 'normal', idx, translated)} - {@html lastParsed} - {:then md} - {@html md} - {/await} + {#await markParsing(msgDisplay, character, 'normal', idx, translated)} + {@html lastParsed} + {:then md} + {@html md} + {/await} {/if} diff --git a/src/ts/parser.ts b/src/ts/parser.ts index 37d78c5f..68f1e4e0 100644 --- a/src/ts/parser.ts +++ b/src/ts/parser.ts @@ -52,9 +52,11 @@ DOMPurify.addHook("uponSanitizeAttribute", (node, data) => { break } case 'class':{ - data.attrValue = data.attrValue.split(' ').map((v) => { - return "x-risu-" + v - }).join(' ') + if(data.attrValue){ + data.attrValue = data.attrValue.split(' ').map((v) => { + return "x-risu-" + v + }).join(' ') + } break } } @@ -180,14 +182,16 @@ function decodeStyle(text:string){ if(rule.selectors){ for(let i=0;i { - if(v.startsWith('.')){ - return ".x-risu-" + v.substring(1) - } - return v - }).join(' ') - - rule.selectors[i] = ".chattext " + selectors + if(slt){ + let selectors = (slt.split(' ') ?? []).map((v) => { + if(v.startsWith('.')){ + return ".x-risu-" + v.substring(1) + } + return v + }).join(' ') + + rule.selectors[i] = ".chattext " + selectors + } } } }