From 5b084eed10659afd0f94f37df8b1a08f7d6af27f Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Sat, 12 Jun 2021 12:45:20 +0100 Subject: [PATCH 01/23] raidboss: reimplement browser TTS Hopefully I didn't screw up the dependencies this time --- package-lock.json | 19 +++++++- package.json | 3 +- ui/raidboss/browser_tts_engine.ts | 74 ++++++++++++++++++++++++++----- ui/raidboss/popup-text.js | 2 +- ui/raidboss/raidboss_config.js | 13 ++++++ ui/raidboss/raidboss_options.ts | 1 + 6 files changed, 98 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index d3d8354e01..902acf6bf4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1537,6 +1537,14 @@ } } }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -4711,8 +4719,7 @@ "follow-redirects": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", - "dev": true + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" }, "for-in": { "version": "1.0.2", @@ -5027,6 +5034,14 @@ "minimist": "^1.2.5" } }, + "google-tts-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/google-tts-api/-/google-tts-api-2.0.2.tgz", + "integrity": "sha512-MkQYbBJEdom8hJpfEVDfD3tpBtkz0X59C+FNsoRhbnCiFjZRnzyurGQ5OrAr3xkigII56/jmk0JNwZsp450G+Q==", + "requires": { + "axios": "^0.21.0" + } + }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", diff --git a/package.json b/package.json index 7571c83340..808e37594b 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "ui/(raidboss|oopsyraidsy)/data/**": "node --loader ts-node/esm test/test_raidboss_data.js" }, "dependencies": { - "argparse": "^1.0.10" + "argparse": "^1.0.10", + "google-tts-api": "^2.0.2" } } diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index f2887d179c..863990bce0 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -1,6 +1,16 @@ +import * as googleTTS from 'google-tts-api'; import { Lang } from '../../resources/languages'; -class TTSItem { +const TTSEngineType = { + SpeechSynthesis: 0, + GoogleTTS: 1, +}; + +interface TTSItem { + play: () => void; +} + +class SpeechTTSItem implements TTSItem { readonly text: string; readonly item: SpeechSynthesisUtterance; @@ -18,16 +28,43 @@ class TTSItem { } } +class GoogleTTSItem implements TTSItem { + readonly text: string; + readonly lang: string; + private item: HTMLAudioElement | null = null; + + constructor(text: string, lang: string) { + this.text = text; + this.lang = lang; + const audio = document.createElement('audio'); + const header = 'data:audio/mpeg;base64,'; + void googleTTS.getAudioBase64(text, { lang: lang }) + .then((result) => audio.src = header + result); + document.body.appendChild(audio); + this.item = audio; + } + + play() { + if (this.item) + void this.item.play(); + } +} + type TTSItemDictionary = { [key: string]: TTSItem; } export default class BrowserTTSEngine { readonly ttsItems: TTSItemDictionary = {}; + readonly googleTTSLang; + private engineType = TTSEngineType.GoogleTTS; private speechLang?: string; private speechVoice?: SpeechSynthesisVoice; constructor(lang: Lang) { + this.googleTTSLang = lang === 'cn' ? 'zh' : lang; + // TODO: should there be options for different voices here so that + // everybody isn't forced into Microsoft Anna? const cactbotLangToSpeechLang = { en: 'en-US', de: 'de-DE', @@ -47,6 +84,7 @@ export default class BrowserTTSEngine { this.speechLang = speechLang; this.speechVoice = voice; window.speechSynthesis.onvoiceschanged = null; + this.engineType = TTSEngineType.SpeechSynthesis; } else { console.error('BrowserTTS error: could not find voice'); } @@ -57,18 +95,34 @@ export default class BrowserTTSEngine { } play(text: string): void { - if (!this.speechVoice) - return; - try { - let ttsItem = this.ttsItems[text]; - if (!ttsItem) { - ttsItem = new TTSItem(text, this.speechLang, this.speechVoice); - this.ttsItems[text] = ttsItem; - } - ttsItem.play(); + const ttsItem = this.ttsItems[text]; + ttsItem ? ttsItem.play() : this.playTTS(text); } catch (e) { console.error('Exception performing TTS', e); } } + + playTTS(text: string): void { + switch (this.engineType) { + case TTSEngineType.SpeechSynthesis: + this.playSpeechTTS(text); + break; + case TTSEngineType.GoogleTTS: + this.playGoogleTTS(text); + break; + } + } + + playSpeechTTS(text: string): void { + const ttsItem = new SpeechTTSItem(text, this.speechLang, this.speechVoice); + this.ttsItems[text] = ttsItem; + ttsItem.play(); + } + + playGoogleTTS(text: string): void { + const ttsItem = new GoogleTTSItem(text, this.googleTTSLang); + this.ttsItems[text] = ttsItem; + ttsItem.play(); + } } diff --git a/ui/raidboss/popup-text.js b/ui/raidboss/popup-text.js index 746e495c81..4932ad05b2 100644 --- a/ui/raidboss/popup-text.js +++ b/ui/raidboss/popup-text.js @@ -238,7 +238,7 @@ export class PopupText { this.parserLang = this.options.ParserLanguage || 'en'; this.displayLang = this.options.AlertsLanguage || this.options.DisplayLanguage || this.options.ParserLanguage || 'en'; - if (this.options.IsRemoteRaidboss) { + if (this.options.IsRemoteRaidboss || this.options.BrowserTTS) { this.ttsEngine = new BrowserTTSEngine(this.displayLang); this.ttsSay = (text) => { this.ttsEngine.play(this.options.TransformTts(text)); diff --git a/ui/raidboss/raidboss_config.js b/ui/raidboss/raidboss_config.js index 4b90f2456c..2c10875069 100644 --- a/ui/raidboss/raidboss_config.js +++ b/ui/raidboss/raidboss_config.js @@ -1417,6 +1417,19 @@ const templateOptions = { type: 'float', default: 1, }, + { + id: 'BrowserTTS', + name: { + en: 'Use Browser for Text to Speech', + de: 'Verwenden Sie den Browser für Text zu Sprache', // Machine translation + fr: 'Utiliser le navigateur pour la synthèse vocale', // Machine Translation + ja: 'ブラウザでTTS', + cn: '忽略ACT的设置,使用Cactbot自带的Google TTS功能(需联网)', + ko: '웹브라우저를 이용해서 TTS 작동시키기', + }, + type: 'checkbox', + default: false, + }, { id: 'cactbotWormholeStrat', // TODO: maybe need some way to group these kinds of diff --git a/ui/raidboss/raidboss_options.ts b/ui/raidboss/raidboss_options.ts index 39d34f5500..75c324040f 100644 --- a/ui/raidboss/raidboss_options.ts +++ b/ui/raidboss/raidboss_options.ts @@ -89,6 +89,7 @@ const defaultRaidbossConfigOptions = { InfoSoundVolume: 1, LongSoundVolume: 1, PullSoundVolume: 1, + BrowserTTS: false, cactbotWormholeStrat: false, cactbote8sUptimeKnockbackStrat: false, }; From 1635240e592d87badca24f43eed22d75de2a8637 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Mon, 26 Jul 2021 00:55:47 +0100 Subject: [PATCH 02/23] fix lint --- ui/raidboss/browser_tts_engine.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index 863990bce0..a4c8c82eb9 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -1,4 +1,5 @@ import * as googleTTS from 'google-tts-api'; + import { Lang } from '../../resources/languages'; const TTSEngineType = { From 8a3c7c6a0feb03b42bb01ed817cfd5a9e0d03434 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Sun, 1 Aug 2021 22:54:23 +0100 Subject: [PATCH 03/23] Update browser_tts_engine.ts Another lint fix --- ui/raidboss/browser_tts_engine.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index 1b4583c8ab..334dcc9589 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -106,12 +106,12 @@ export default class BrowserTTSEngine { playTTS(text: string): void { switch (this.engineType) { - case TTSEngineType.SpeechSynthesis: - this.playSpeechTTS(text); - break; - case TTSEngineType.GoogleTTS: - this.playGoogleTTS(text); - break; + case TTSEngineType.SpeechSynthesis: + this.playSpeechTTS(text); + break; + case TTSEngineType.GoogleTTS: + this.playGoogleTTS(text); + break; } } From 1ad27c6d1593a759e76af560b1a0250eb3816667 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Mon, 13 Dec 2021 20:11:09 +0000 Subject: [PATCH 04/23] raidboss: fix browser TTS for new OverlayPlugin --- ui/raidboss/browser_tts_engine.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index 334dcc9589..960111477f 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -38,9 +38,8 @@ class GoogleTTSItem implements TTSItem { this.text = text; this.lang = lang; const audio = document.createElement('audio'); - const header = 'data:audio/mpeg;base64,'; - void googleTTS.getAudioBase64(text, { lang: lang }) - .then((result) => audio.src = header + result); + const url = googleTTS.getAudioUrl(text, { lang: lang }); + audio.src = url; document.body.appendChild(audio); this.item = audio; } From 57b3a343a3599d684d1e66454987189b90ffa17b Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Mon, 13 Dec 2021 20:14:09 +0000 Subject: [PATCH 05/23] raidboss: downgrade error on no voice found --- ui/raidboss/browser_tts_engine.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index 960111477f..b503bcc1ac 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -86,7 +86,7 @@ export default class BrowserTTSEngine { window.speechSynthesis.onvoiceschanged = null; this.engineType = TTSEngineType.SpeechSynthesis; } else { - console.error('BrowserTTS error: could not find voice'); + console.warn('BrowserTTS warning: could not find voice'); } }; } else { From 70d0afda3a8de9f31ce8b4d75de33535c2e65ea2 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Mon, 13 Dec 2021 23:43:04 +0000 Subject: [PATCH 06/23] Revert "raidboss: downgrade error on no voice found" This reverts commit 57b3a343a3599d684d1e66454987189b90ffa17b. --- ui/raidboss/browser_tts_engine.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index b503bcc1ac..960111477f 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -86,7 +86,7 @@ export default class BrowserTTSEngine { window.speechSynthesis.onvoiceschanged = null; this.engineType = TTSEngineType.SpeechSynthesis; } else { - console.warn('BrowserTTS warning: could not find voice'); + console.error('BrowserTTS error: could not find voice'); } }; } else { From 0c0e9ec5c6dca63ad4500c2287e6c902e051fec0 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Mon, 13 Dec 2021 23:46:12 +0000 Subject: [PATCH 07/23] raidboss: make browser TTS slightly less janky --- ui/raidboss/browser_tts_engine.ts | 24 +++++++++++++----------- ui/raidboss/popup-text.ts | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index 960111477f..f2dbfe396a 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -61,7 +61,7 @@ export default class BrowserTTSEngine { private speechLang?: string; private speechVoice?: SpeechSynthesisVoice; - constructor(lang: Lang) { + constructor(lang: Lang, google: boolean) { this.googleTTSLang = lang === 'cn' ? 'zh' : lang; // TODO: should there be options for different voices here so that // everybody isn't forced into Microsoft Anna? @@ -77,16 +77,18 @@ export default class BrowserTTSEngine { // figure out what TTS engine type we need if (window.speechSynthesis !== undefined) { - window.speechSynthesis.onvoiceschanged = () => { - const speechLang = cactbotLangToSpeechLang[lang]; - const voice = window.speechSynthesis.getVoices().find((voice) => voice.lang === speechLang); - if (voice) { - this.speechLang = speechLang; - this.speechVoice = voice; - window.speechSynthesis.onvoiceschanged = null; - this.engineType = TTSEngineType.SpeechSynthesis; - } else { - console.error('BrowserTTS error: could not find voice'); + if (!google) { + window.speechSynthesis.onvoiceschanged = () => { + const speechLang = cactbotLangToSpeechLang[lang]; + const voice = window.speechSynthesis.getVoices().find((voice) => voice.lang === speechLang); + if (voice) { + this.speechLang = speechLang; + this.speechVoice = voice; + window.speechSynthesis.onvoiceschanged = null; + this.engineType = TTSEngineType.SpeechSynthesis; + } else { + console.error('BrowserTTS error: could not find voice'); + } } }; } else { diff --git a/ui/raidboss/popup-text.ts b/ui/raidboss/popup-text.ts index 5f560aea54..bde038d0ff 100644 --- a/ui/raidboss/popup-text.ts +++ b/ui/raidboss/popup-text.ts @@ -452,7 +452,7 @@ export class PopupText { this.displayLang = this.options.AlertsLanguage ?? this.options.DisplayLanguage ?? this.options.ParserLanguage ?? 'en'; if (this.options.IsRemoteRaidboss || this.options.BrowserTTS) { - this.ttsEngine = new BrowserTTSEngine(this.displayLang); + this.ttsEngine = new BrowserTTSEngine(this.displayLang,this.options.BrowserTTS); this.ttsSay = (text) => { this.ttsEngine?.play(this.options.TransformTts(text)); }; From 1f7fc14af9069e1067106f39a0b236614adf5748 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Sun, 19 Dec 2021 20:56:07 +0000 Subject: [PATCH 08/23] raidboss: only use Google TTS for local instances --- ui/raidboss/browser_tts_engine.ts | 4 ++-- ui/raidboss/popup-text.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index f2dbfe396a..da00ddc728 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -61,7 +61,7 @@ export default class BrowserTTSEngine { private speechLang?: string; private speechVoice?: SpeechSynthesisVoice; - constructor(lang: Lang, google: boolean) { + constructor(lang: Lang, remote: boolean) { this.googleTTSLang = lang === 'cn' ? 'zh' : lang; // TODO: should there be options for different voices here so that // everybody isn't forced into Microsoft Anna? @@ -77,7 +77,7 @@ export default class BrowserTTSEngine { // figure out what TTS engine type we need if (window.speechSynthesis !== undefined) { - if (!google) { + if (remote) { window.speechSynthesis.onvoiceschanged = () => { const speechLang = cactbotLangToSpeechLang[lang]; const voice = window.speechSynthesis.getVoices().find((voice) => voice.lang === speechLang); diff --git a/ui/raidboss/popup-text.ts b/ui/raidboss/popup-text.ts index bde038d0ff..5eb5b93abc 100644 --- a/ui/raidboss/popup-text.ts +++ b/ui/raidboss/popup-text.ts @@ -452,7 +452,7 @@ export class PopupText { this.displayLang = this.options.AlertsLanguage ?? this.options.DisplayLanguage ?? this.options.ParserLanguage ?? 'en'; if (this.options.IsRemoteRaidboss || this.options.BrowserTTS) { - this.ttsEngine = new BrowserTTSEngine(this.displayLang,this.options.BrowserTTS); + this.ttsEngine = new BrowserTTSEngine(this.displayLang,this.options.IsRemoteRaidboss); this.ttsSay = (text) => { this.ttsEngine?.play(this.options.TransformTts(text)); }; From d8943d0c92d0966063c6e2059813ff7ab48416dd Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Mon, 27 Dec 2021 20:04:31 +0000 Subject: [PATCH 09/23] raidboss: fix lint --- ui/raidboss/browser_tts_engine.ts | 10 ++++++---- ui/raidboss/popup-text.ts | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index da00ddc728..c5b78a6d58 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -80,17 +80,19 @@ export default class BrowserTTSEngine { if (remote) { window.speechSynthesis.onvoiceschanged = () => { const speechLang = cactbotLangToSpeechLang[lang]; - const voice = window.speechSynthesis.getVoices().find((voice) => voice.lang === speechLang); + const voice = window.speechSynthesis.getVoices().find((voice) => + voice.lang === speechLang + ); if (voice) { - this.speechLang = speechLang; + this.speechLang = speechLang; this.speechVoice = voice; window.speechSynthesis.onvoiceschanged = null; this.engineType = TTSEngineType.SpeechSynthesis; } else { console.error('BrowserTTS error: could not find voice'); } - } - }; + }; + } } else { console.error('BrowserTTS error: no browser support for window.speechSynthesis'); } diff --git a/ui/raidboss/popup-text.ts b/ui/raidboss/popup-text.ts index 5eb5b93abc..c4016d7219 100644 --- a/ui/raidboss/popup-text.ts +++ b/ui/raidboss/popup-text.ts @@ -452,7 +452,7 @@ export class PopupText { this.displayLang = this.options.AlertsLanguage ?? this.options.DisplayLanguage ?? this.options.ParserLanguage ?? 'en'; if (this.options.IsRemoteRaidboss || this.options.BrowserTTS) { - this.ttsEngine = new BrowserTTSEngine(this.displayLang,this.options.IsRemoteRaidboss); + this.ttsEngine = new BrowserTTSEngine(this.displayLang, this.options.IsRemoteRaidboss); this.ttsSay = (text) => { this.ttsEngine?.play(this.options.TransformTts(text)); }; From d85eacaf77fa0924faec8451891c134e3f869577 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Wed, 23 Mar 2022 23:12:20 +0000 Subject: [PATCH 10/23] raidboss/config: fix for hasty merge --- ui/raidboss/raidboss_config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/raidboss/raidboss_config.ts b/ui/raidboss/raidboss_config.ts index 593cebe727..b6deebb2ca 100644 --- a/ui/raidboss/raidboss_config.ts +++ b/ui/raidboss/raidboss_config.ts @@ -1834,6 +1834,10 @@ const templateOptions: OptionsTemplate = { cn: '忽略ACT的设置,使用Cactbot自带的Google TTS功能(需联网)', ko: '웹브라우저를 이용해서 TTS 작동시키기', }, + type: 'checkbox', + default: false, + }, + { id: 'RumbleEnabled', name: { en: 'Enable gamepad rumble for triggers', From d8996af3d9fb3df3e8edd62d8e182569a273fbb7 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Tue, 12 Apr 2022 20:10:23 +0100 Subject: [PATCH 11/23] ci fix pls --- package-lock.json | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1ab9bab01..056749ecd4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "dexie": "^3.0.3", "dexie-export-import": "^1.0.0", "eventemitter3": "^4.0.7", + "google-tts-api": "^2.0.2", "inquirer": "^8.1.1", "inquirer-fuzzy-path": "^2.3.0", "lodash": "^4.14.170" @@ -3665,6 +3666,14 @@ "url": "https://opencollective.com/postcss/" } }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, "node_modules/babel-loader": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", @@ -7015,7 +7024,6 @@ "version": "1.14.8", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "dev": true, "funding": [ { "type": "individual", @@ -7559,6 +7567,14 @@ "node": ">=0.6.0" } }, + "node_modules/google-tts-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/google-tts-api/-/google-tts-api-2.0.2.tgz", + "integrity": "sha512-MkQYbBJEdom8hJpfEVDfD3tpBtkz0X59C+FNsoRhbnCiFjZRnzyurGQ5OrAr3xkigII56/jmk0JNwZsp450G+Q==", + "dependencies": { + "axios": "^0.21.0" + } + }, "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -18930,11 +18946,11 @@ } }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.0" } }, "babel-loader": { @@ -21501,8 +21517,7 @@ "follow-redirects": { "version": "1.14.8", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "dev": true + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" }, "fork-ts-checker-webpack-plugin": { "version": "6.5.0", From 85882e6b4cfc6cdf2882f4f0e1ee4391f2c89fec Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Fri, 6 May 2022 09:06:12 +0100 Subject: [PATCH 12/23] Fix build for webpack 5 --- package-lock.json | 51 +++++++++++++++++++++++++++++++++++++++++++---- package.json | 3 ++- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7a168609f8..d5ab441c14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,8 @@ "google-tts-api": "^2.0.2", "inquirer": "^8.1.1", "inquirer-fuzzy-path": "^2.3.0", - "lodash": "^4.14.170" + "lodash": "^4.14.170", + "url": "^0.11.0" }, "devDependencies": { "@actions/github": "^5.0.0", @@ -6645,7 +6646,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", - "dev": true, "funding": [ { "type": "individual", @@ -12231,6 +12231,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -14779,6 +14788,20 @@ "punycode": "^2.1.0" } }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -20629,8 +20652,7 @@ "follow-redirects": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", - "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", - "dev": true + "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" }, "fork-ts-checker-webpack-plugin": { "version": "7.2.11", @@ -24663,6 +24685,11 @@ "side-channel": "^1.0.4" } }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -26614,6 +26641,22 @@ "punycode": "^2.1.0" } }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 9c4aff8b43..c1f6c751ba 100644 --- a/package.json +++ b/package.json @@ -129,6 +129,7 @@ "google-tts-api": "^2.0.2", "inquirer": "^8.1.1", "inquirer-fuzzy-path": "^2.3.0", - "lodash": "^4.14.170" + "lodash": "^4.14.170", + "url": "^0.11.0" } } From d91ecdc29682c7072ba60dfde16b35df08d1b62a Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Sun, 26 Feb 2023 05:07:56 +0000 Subject: [PATCH 13/23] lint fix --- ui/raidboss/browser_tts_engine.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index 3a7240e896..15d1a341e6 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -62,9 +62,9 @@ export default class BrowserTTSEngine { private initializeAttempts = 0; constructor(private cactbotLang: Lang, private isRemote: boolean) { - if (!isRemote){ + if (!isRemote) { this.engineType = TTSEngineType.GoogleTTS; - console.info('BrowserTTS info: running locally in Google TTS mode') + console.info('BrowserTTS info: running locally in Google TTS mode'); } else if (window.speechSynthesis !== undefined) { // https://bugs.chromium.org/p/chromium/issues/detail?id=334847 window.speechSynthesis.getVoices(); @@ -84,8 +84,6 @@ export default class BrowserTTSEngine { return false; this.initializeAttempts++; - - const cactbotLangToSpeechLang = { en: 'en-US', de: 'de-DE', From 0e112665c90e040c1bca06ee146277677c789473 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Sun, 26 Feb 2023 18:30:11 +0000 Subject: [PATCH 14/23] raidboss: tidy up --- ui/raidboss/browser_tts_engine.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ui/raidboss/browser_tts_engine.ts b/ui/raidboss/browser_tts_engine.ts index 15d1a341e6..c6724cf270 100644 --- a/ui/raidboss/browser_tts_engine.ts +++ b/ui/raidboss/browser_tts_engine.ts @@ -32,7 +32,7 @@ class SpeechTTSItem implements TTSItem { class GoogleTTSItem implements TTSItem { readonly text: string; readonly lang: string; - private item: HTMLAudioElement | null = null; + private readonly item: HTMLAudioElement | null = null; constructor(text: string, lang: string) { this.text = text; @@ -56,12 +56,14 @@ type TTSItemDictionary = { export default class BrowserTTSEngine { readonly ttsItems: TTSItemDictionary = {}; - private engineType = TTSEngineType.SpeechSynthesis; + private readonly engineType = TTSEngineType.SpeechSynthesis; + private readonly googleTTSLang: string; private speechLang?: string; private speechVoice?: SpeechSynthesisVoice; private initializeAttempts = 0; constructor(private cactbotLang: Lang, private isRemote: boolean) { + this.googleTTSLang = cactbotLang === 'cn' ? 'zh' : cactbotLang; if (!isRemote) { this.engineType = TTSEngineType.GoogleTTS; console.info('BrowserTTS info: running locally in Google TTS mode'); @@ -142,7 +144,7 @@ export default class BrowserTTSEngine { } playGoogleTTS(text: string): void { - const ttsItem = new GoogleTTSItem(text, this.cactbotLang === 'cn' ? 'zh' : this.cactbotLang); + const ttsItem = new GoogleTTSItem(text, this.googleTTSLang); this.ttsItems[text] = ttsItem; ttsItem.play(); } From 97a0b814bf9b0faa6636e10e1a67075fdbaaccbd Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 11 Aug 2023 10:01:08 -0700 Subject: [PATCH 15/23] Publish this and make it the default --- .github/workflows/update-gh-pages.yml | 2 +- ui/raidboss/raidboss_config.ts | 2 +- ui/raidboss/raidboss_options.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-gh-pages.yml b/.github/workflows/update-gh-pages.yml index 9ecb7febda..383e0b4ccb 100644 --- a/.github/workflows/update-gh-pages.yml +++ b/.github/workflows/update-gh-pages.yml @@ -2,7 +2,7 @@ name: Update gh-pages on: push: - branches: [ main ] + branches: [ browser_tts ] jobs: check-gh-pages: diff --git a/ui/raidboss/raidboss_config.ts b/ui/raidboss/raidboss_config.ts index c095cde7f9..77e902f053 100644 --- a/ui/raidboss/raidboss_config.ts +++ b/ui/raidboss/raidboss_config.ts @@ -2301,7 +2301,7 @@ const templateOptions: OptionsTemplate = { ko: '웹브라우저를 이용해서 TTS 작동시키기', }, type: 'checkbox', - default: false, + default: true, }, { id: 'RumbleEnabled', diff --git a/ui/raidboss/raidboss_options.ts b/ui/raidboss/raidboss_options.ts index 8a6a4bcf85..23a6435f9c 100644 --- a/ui/raidboss/raidboss_options.ts +++ b/ui/raidboss/raidboss_options.ts @@ -109,7 +109,7 @@ const defaultRaidbossConfigOptions = { InfoSoundVolume: 1, LongSoundVolume: 1, PullSoundVolume: 1, - BrowserTTS: false, + BrowserTTS: true, RumbleEnabled: false, InfoRumbleDuration: 400, InfoRumbleWeak: 0.5, From 6c346faf540fe9d12dc26bea4257e9315f71778f Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 11 Aug 2023 10:02:13 -0700 Subject: [PATCH 16/23] Trigger build --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08f1e0aa4b..f395c41093 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # cactbot (ffxiv raiding overlay) + [![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/quisquous/cactbot/Test/main)](https://github.com/quisquous/cactbot/actions?query=workflow%3ATest+branch%3Amain) From b0ef9dc1600c0f7a2fb320457d75632a5ec64029 Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 11 Aug 2023 10:04:15 -0700 Subject: [PATCH 17/23] Fix node --- README.md | 1 - package-lock.json | 74 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 56 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index f395c41093..08f1e0aa4b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # cactbot (ffxiv raiding overlay) - [![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/quisquous/cactbot/Test/main)](https://github.com/quisquous/cactbot/actions?query=workflow%3ATest+branch%3Amain) diff --git a/package-lock.json b/package-lock.json index f61b8a2afc..d57277747d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3986,7 +3986,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -7353,8 +7352,7 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -7428,7 +7426,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -7740,7 +7737,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -7781,7 +7777,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -11657,7 +11652,6 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13984,7 +13978,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -15568,6 +15561,15 @@ "punycode": "^2.1.0" } }, + "node_modules/url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.0" + } + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -15579,6 +15581,25 @@ "requires-port": "^1.0.0" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -19493,7 +19514,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -22011,8 +22031,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { "version": "1.1.5", @@ -22065,7 +22084,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -22309,7 +22327,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -22337,8 +22354,7 @@ "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { "version": "1.0.0", @@ -25156,8 +25172,7 @@ "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" }, "object-keys": { "version": "1.1.1", @@ -26865,7 +26880,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -28071,6 +28085,30 @@ "punycode": "^2.1.0" } }, + "url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "requires": { + "punycode": "^1.4.1", + "qs": "^6.11.0" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, "url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", From 730f9e3e99c23c327565a076a19c5d954330b330 Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 11 Aug 2023 10:33:01 -0700 Subject: [PATCH 18/23] Use TTS by default --- ui/raidboss/raidboss_options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/raidboss/raidboss_options.ts b/ui/raidboss/raidboss_options.ts index 23a6435f9c..030c5ec170 100644 --- a/ui/raidboss/raidboss_options.ts +++ b/ui/raidboss/raidboss_options.ts @@ -92,7 +92,7 @@ const defaultRaidbossNonConfigOptions: RaidbossNonConfigOptions = { // TODO: figure out how to get this type from raidboss_config?? // These values are overwritten and are just here for typing. const defaultRaidbossConfigOptions = { - DefaultAlertOutput: 'textAndSound', + DefaultAlertOutput: 'ttsAndText', AlertsLanguage: undefined as (Lang | undefined), TimelineLanguage: undefined as (Lang | undefined), TimelineEnabled: true, From 217ed109a08579bd0aa68a12752fb2350d97c9b4 Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 11 Aug 2023 11:07:28 -0700 Subject: [PATCH 19/23] Try using native TTS for now --- ui/raidboss/raidboss_config.ts | 2 +- ui/raidboss/raidboss_options.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/raidboss/raidboss_config.ts b/ui/raidboss/raidboss_config.ts index 77e902f053..c095cde7f9 100644 --- a/ui/raidboss/raidboss_config.ts +++ b/ui/raidboss/raidboss_config.ts @@ -2301,7 +2301,7 @@ const templateOptions: OptionsTemplate = { ko: '웹브라우저를 이용해서 TTS 작동시키기', }, type: 'checkbox', - default: true, + default: false, }, { id: 'RumbleEnabled', diff --git a/ui/raidboss/raidboss_options.ts b/ui/raidboss/raidboss_options.ts index 030c5ec170..b4d823df91 100644 --- a/ui/raidboss/raidboss_options.ts +++ b/ui/raidboss/raidboss_options.ts @@ -109,7 +109,7 @@ const defaultRaidbossConfigOptions = { InfoSoundVolume: 1, LongSoundVolume: 1, PullSoundVolume: 1, - BrowserTTS: true, + BrowserTTS: false, RumbleEnabled: false, InfoRumbleDuration: 400, InfoRumbleWeak: 0.5, From 0f85adb3a30feba4ecd0c8030960c9e1d1982334 Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 11 Aug 2023 11:34:41 -0700 Subject: [PATCH 20/23] Revert "Try using native TTS for now" This reverts commit 864b06c15a2af8369aaad0a8a2651ed79e9b39bc. --- ui/raidboss/raidboss_config.ts | 2 +- ui/raidboss/raidboss_options.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/raidboss/raidboss_config.ts b/ui/raidboss/raidboss_config.ts index c095cde7f9..77e902f053 100644 --- a/ui/raidboss/raidboss_config.ts +++ b/ui/raidboss/raidboss_config.ts @@ -2301,7 +2301,7 @@ const templateOptions: OptionsTemplate = { ko: '웹브라우저를 이용해서 TTS 작동시키기', }, type: 'checkbox', - default: false, + default: true, }, { id: 'RumbleEnabled', diff --git a/ui/raidboss/raidboss_options.ts b/ui/raidboss/raidboss_options.ts index b4d823df91..030c5ec170 100644 --- a/ui/raidboss/raidboss_options.ts +++ b/ui/raidboss/raidboss_options.ts @@ -109,7 +109,7 @@ const defaultRaidbossConfigOptions = { InfoSoundVolume: 1, LongSoundVolume: 1, PullSoundVolume: 1, - BrowserTTS: false, + BrowserTTS: true, RumbleEnabled: false, InfoRumbleDuration: 400, InfoRumbleWeak: 0.5, From f0518b35c6f680d46acdcd1f5eaaa2214d8ef35f Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 11 Aug 2023 11:49:47 -0700 Subject: [PATCH 21/23] Try removing referrers --- ui/raidboss/raidboss.html | 62 +++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/ui/raidboss/raidboss.html b/ui/raidboss/raidboss.html index bdfdb685c7..5046e00e25 100644 --- a/ui/raidboss/raidboss.html +++ b/ui/raidboss/raidboss.html @@ -1,41 +1,45 @@ + + Cactbot Raidboss + -
-
-
-
+
+
+
+
+
+
+
-
-
-
- + From 32eb60b205e3645d7c2f645993c615daefd036a7 Mon Sep 17 00:00:00 2001 From: Josh Symonds Date: Fri, 18 Aug 2023 09:26:56 -0700 Subject: [PATCH 22/23] Also update pages on merges to main --- .github/workflows/update-gh-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-gh-pages.yml b/.github/workflows/update-gh-pages.yml index 383e0b4ccb..2b2d3ffd53 100644 --- a/.github/workflows/update-gh-pages.yml +++ b/.github/workflows/update-gh-pages.yml @@ -2,7 +2,7 @@ name: Update gh-pages on: push: - branches: [ browser_tts ] + branches: [ browser_tts, main ] jobs: check-gh-pages: From 7f1819efd1c9ef23d053bd1954bdf460c3d709f8 Mon Sep 17 00:00:00 2001 From: SiliconExarch Date: Sat, 7 Oct 2023 23:49:14 +0100 Subject: [PATCH 23/23] ci: auto-cancel redundant gh-pages updates --- .github/workflows/update-gh-pages.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/update-gh-pages.yml b/.github/workflows/update-gh-pages.yml index 2b2d3ffd53..adcb4ed13f 100644 --- a/.github/workflows/update-gh-pages.yml +++ b/.github/workflows/update-gh-pages.yml @@ -4,6 +4,10 @@ on: push: branches: [ browser_tts, main ] +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: true + jobs: check-gh-pages: runs-on: ubuntu-latest