cINAWGD commited on
Commit
25fdf96
·
verified ·
1 Parent(s): 1554706

Update utils/quote-generate.js

Browse files
Files changed (1) hide show
  1. utils/quote-generate.js +37 -25
utils/quote-generate.js CHANGED
@@ -499,35 +499,48 @@ class QuoteGenerate {
499
  await Promise.all(loadCustomEmojiStickerPromises).catch(() => { })
500
  }
501
 
502
- const EW = (a) => styledWords.every(el => typeof el === 'string' && el.endsWith(a));
503
 
504
  let breakWrite = false;
505
  let lineDirection = this.getLineDirection(styledWords, 0);
506
- const styleRules = [
507
- { char: "*", styleName: "bold", lastStyleName: "last_bold" },
508
- { char: "~", styleName: "strikethrough", lastStyleName: "last_strikethrough" },
509
- { char: "_", styleName: "italic", lastStyleName: "last_italic" }
510
- ];
511
 
512
  for (let index = 0; index < styledWords.length; index++) {
513
- const styledWord = styledWords[index];
514
- const last_styledWord = styledWords[index - 1];
515
-
516
- const lastWord = last_styledWord?.word?.toString();
517
- const lastStyles = last_styledWord?.style || [];
518
- const currentWord = styledWord.word?.toString();
519
-
520
- for (const { char, styleName, lastStyleName } of styleRules) {
521
- const startsWithChar = currentWord?.startsWith(char);
522
- const endsWithChar = currentWord?.endsWith(char);
523
-
524
- if (lastWord?.startsWith(char) || lastStyles.includes(styleName) || startsWithChar) {
525
- if (!lastStyles.includes(lastStyleName) && EW(char)) {
526
- if (!Array.isArray(styledWord.style)) styledWord.style = [];
527
- styledWord.style.push(styleName);
528
-
529
- if (startsWithChar) {
530
- styledWord.word = currentWord.slice(1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
531
  }
532
  if (endsWithChar) {
533
  styledWord.word = styledWord.word.slice(0, -1);
@@ -535,7 +548,6 @@ class QuoteGenerate {
535
  }
536
  }
537
  }
538
- }
539
 
540
  let emojiImage
541
 
 
499
  await Promise.all(loadCustomEmojiStickerPromises).catch(() => { })
500
  }
501
 
 
502
 
503
  let breakWrite = false;
504
  let lineDirection = this.getLineDirection(styledWords, 0);
505
+
 
 
 
 
506
 
507
  for (let index = 0; index < styledWords.length; index++) {
508
+ const styledWord = styledWords[index]
509
+ const last_styledWord = styledWords[index - 1]
510
+ if (last_styledWord?.word?.toString()?.startsWith("*") || last_styledWord?.style?.includes("bold") || styledWord?.word?.toString()?.startsWith("*")) {
511
+ if (!last_styledWord?.style.includes("last_bold")) {
512
+ if (!Array.isArray(styledWord.style)) styledWord.style = []
513
+ styledWord.style.push("bold")
514
+ if (styledWord?.word?.toString()?.startsWith("*")) {
515
+ styledWord.word = styledWord.word.slice(1)
516
+ }
517
+ if (styledWord?.word?.toString()?.endsWith("*")) {
518
+ styledWord.word = styledWord.word.slice(0, -1);
519
+ styledWord.style.push("last_bold")
520
+ }
521
+ }
522
+ }
523
+
524
+ if (last_styledWord?.word?.toString()?.startsWith("~") || last_styledWord?.style?.includes("strikethrough") || styledWord?.word?.toString()?.startsWith("~")) {
525
+ if (!last_styledWord?.style.includes("last_strikethrough")) {
526
+ if (!Array.isArray(styledWord.style)) styledWord.style = []
527
+ styledWord.style.push("strikethrough")
528
+ if (styledWord?.word?.toString()?.startsWith("~")) {
529
+ styledWord.word = styledWord.word.slice(1)
530
+ }
531
+ if (styledWord?.word?.toString()?.endsWith("~")) {
532
+ styledWord.word = styledWord.word.slice(0, -1);
533
+ styledWord.style.push("last_strikethrough")
534
+ }
535
+ }
536
+ }
537
+
538
+ if (last_styledWord?.word?.toString()?.startsWith("_") || last_styledWord?.style?.includes("italic") || styledWord?.word?.toString()?.startsWith("_")) {
539
+ if (!last_styledWord?.style.includes("last_italic")) {
540
+ if (!Array.isArray(styledWord.style)) styledWord.style = []
541
+ styledWord.style.push("italic")
542
+ if (styledWord?.word?.toString()?.startsWith("~")) {
543
+ styledWord.word = styledWord.word.slice(1)
544
  }
545
  if (endsWithChar) {
546
  styledWord.word = styledWord.word.slice(0, -1);
 
548
  }
549
  }
550
  }
 
551
 
552
  let emojiImage
553