dsh-boot-suite 2.13.19 → 2.13.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/lib/client.js +9 -9
- package/package.json +1 -1
- package/test/smoke-client.mjs +24 -24
- package/test/smoke-wallpaper-client.mjs +1 -1
package/CHANGELOG.md
CHANGED
package/lib/client.js
CHANGED
|
@@ -266,7 +266,7 @@ window.__ModuleLoader__.load({
|
|
|
266
266
|
—— 桌面端走浏览器半侧自举时没有 1,就靠这一条
|
|
267
267
|
3) 下面这个常量:两份都没拿到时的兜底,别让面板显示 undefined
|
|
268
268
|
版本号本身只在 lib/index.js 里读一次,这里不重复维护。 */
|
|
269
|
-
var FALLBACK_VERSION = '2.13.
|
|
269
|
+
var FALLBACK_VERSION = '2.13.20'
|
|
270
270
|
/* 手动选包成功后置 true:让还在后台跑的“浏览器下载监听”不要再弹第二次更新器 */
|
|
271
271
|
var __manualUpdateApplied = false
|
|
272
272
|
function readInjectedVersion() {
|
|
@@ -927,8 +927,8 @@ window.__ModuleLoader__.load({
|
|
|
927
927
|
h('div', { className: '__ss_group' },
|
|
928
928
|
h('div', { className: '__ss_groupTitle' }, '语音与音效'),
|
|
929
929
|
h(Check, {
|
|
930
|
-
label: '
|
|
931
|
-
hint: '
|
|
930
|
+
label: '启用配音播报',
|
|
931
|
+
hint: '每一行的台词都在文字出现的同一时刻念出来,动画等这句话念完再走下一步。',
|
|
932
932
|
checked: draft.voice,
|
|
933
933
|
onChange: (v) => set('voice', v)
|
|
934
934
|
}),
|
|
@@ -938,22 +938,22 @@ window.__ModuleLoader__.load({
|
|
|
938
938
|
+ '选完音色后,下面的「声音效果」可以再叠一层处理,或选「无」保留原声。'
|
|
939
939
|
},
|
|
940
940
|
h(Select, {
|
|
941
|
-
value: draft.voicePack || '
|
|
941
|
+
value: draft.voicePack || 'f',
|
|
942
942
|
options: voiceOptions(),
|
|
943
943
|
onChange: (v) => set('voicePack', v)
|
|
944
944
|
})
|
|
945
945
|
) : null,
|
|
946
946
|
draft.voice ? h(Field, {
|
|
947
947
|
label: '声音效果',
|
|
948
|
-
hint: '5
|
|
949
|
-
+ '
|
|
948
|
+
hint: '默认「机器人」;5 个音效都来自模板编辑器里的同一套参数,实时叠加在所选音色上。'
|
|
949
|
+
+ '选「无(原声)」就是干净人声;只影响全局配音素材,模板自带的配音不受影响。'
|
|
950
950
|
},
|
|
951
951
|
h(Select, {
|
|
952
952
|
value: draft.voiceFx || 'none',
|
|
953
953
|
options: [
|
|
954
|
-
['none', '
|
|
954
|
+
['none', '无(原声)'],
|
|
955
955
|
['ai-mech', 'AI 机械音'],
|
|
956
|
-
['robot', '
|
|
956
|
+
['robot', '机器人(默认)'],
|
|
957
957
|
['radio', '无线电'],
|
|
958
958
|
['oldtv', '老电视'],
|
|
959
959
|
['dark', '低沉']
|
|
@@ -1600,7 +1600,7 @@ window.__ModuleLoader__.load({
|
|
|
1600
1600
|
/* 每次改客户端就把这个号 +1。
|
|
1601
1601
|
有了它在控制台一眼就能判断"浏览器里跑的是不是最新那份" ——
|
|
1602
1602
|
排查问题时,分不清是代码问题还是旧包,会白猜一轮。 */
|
|
1603
|
-
var BUILD = 'cw-
|
|
1603
|
+
var BUILD = 'cw-43'
|
|
1604
1604
|
|
|
1605
1605
|
function log() {
|
|
1606
1606
|
try {
|
package/package.json
CHANGED
package/test/smoke-client.mjs
CHANGED
|
@@ -112,12 +112,12 @@ const fetchStub = (url, init) => {
|
|
|
112
112
|
if (!HIDDEN.includes(id)) HIDDEN.push(id)
|
|
113
113
|
return Promise.resolve({ json: () => Promise.resolve({ ok: true, id, removed: false, hidden: true }) })
|
|
114
114
|
}
|
|
115
|
-
if (u.includes('/dsh-startup/voices')) {
|
|
116
|
-
return Promise.resolve({ json: () => Promise.resolve({ ok: true, packs: [
|
|
117
|
-
{ id: 'f', name: '英文音色F(默认)', lang: 'en' },
|
|
118
|
-
{ id: 'g', name: '日文音色1', lang: 'ja' },
|
|
119
|
-
], default: 'f' }) })
|
|
120
|
-
}
|
|
115
|
+
if (u.includes('/dsh-startup/voices')) {
|
|
116
|
+
return Promise.resolve({ json: () => Promise.resolve({ ok: true, packs: [
|
|
117
|
+
{ id: 'f', name: '英文音色F(默认)', lang: 'en' },
|
|
118
|
+
{ id: 'g', name: '日文音色1', lang: 'ja' },
|
|
119
|
+
], default: 'f' }) })
|
|
120
|
+
}
|
|
121
121
|
if (u.includes('/dsh-startup/templates')) {
|
|
122
122
|
return Promise.resolve({ json: () => Promise.resolve({ ok: true, templates: liveTemplates(), hidden: HIDDEN.slice() }) })
|
|
123
123
|
}
|
|
@@ -216,11 +216,11 @@ check('渲染出「权限等级」字段', texts.includes('权限等级'))
|
|
|
216
216
|
const idInput = find(tree, (n) => n.type === 'input' && n.props.type === 'text' && n.props.value === 'JOYCE MOORE')
|
|
217
217
|
check('身份名称输入框回填了当前配置', !!idInput, idInput && idInput.props.value)
|
|
218
218
|
check('渲染出「启动动画」开关', texts.includes('启用启动动画'))
|
|
219
|
-
check('
|
|
219
|
+
check('渲染出「启用配音播报」开关', texts.includes('启用配音播报'))
|
|
220
220
|
check('已删除旧 TTS「播报语言」字段', !texts.includes('播报语言'))
|
|
221
|
-
check('渲染出「配音音色」字段', texts.includes('配音音色'))
|
|
222
|
-
check('渲染出「声音效果」字段', texts.includes('声音效果'))
|
|
223
|
-
check('渲染出「终幕语音延迟」字段', texts.includes('终幕语音延迟'))
|
|
221
|
+
check('渲染出「配音音色」字段', texts.includes('配音音色'))
|
|
222
|
+
check('渲染出「声音效果」字段', texts.includes('声音效果'))
|
|
223
|
+
check('渲染出「终幕语音延迟」字段', texts.includes('终幕语音延迟'))
|
|
224
224
|
check('渲染出「界面音效」开关', texts.includes('界面音效'))
|
|
225
225
|
check('已删除旧 TTS 音色选择', !texts.includes('试听所选音色') && !texts.includes('语音来源'))
|
|
226
226
|
check('渲染出音量、不再有语速/音调', texts.includes('音量') && !texts.includes('语速') && !texts.includes('音调'))
|
|
@@ -499,20 +499,20 @@ const beforePreview = requests.length
|
|
|
499
499
|
previewBtn.props.onClick()
|
|
500
500
|
await flush(); await flush(); await flush()
|
|
501
501
|
check('立即预览先重新拉配置', requests.length > beforePreview && requests.slice(beforePreview).some((r) => /\/dsh-startup\/config/.test(r.url || '')), '')
|
|
502
|
-
check('立即预览调用 __DSH_STARTUP_API__.replay()', windowStub.__replayed === true)
|
|
503
|
-
/* v2.13.15 回归:选完「配音音色」直接点预览(还没点保存)也必须按当前选择播 */
|
|
504
|
-
tree = renderPanel()
|
|
505
|
-
const voiceSel = walk(tree).filter((n) => n.type === 'select' && Array.isArray(n.props.children) && n.props.children.some((o) => o && o.props.value === 'g'))[0]
|
|
506
|
-
check('配音音色下拉能从 /voices 拿到音色G', !!voiceSel, JSON.stringify(walk(tree).filter((n) => n.type === 'select').map((n) => (n.props.children || []).map((o) => o && o.props.value))))
|
|
507
|
-
if (voiceSel) {
|
|
508
|
-
voiceSel.props.onChange({ target: { value: 'g' } })
|
|
509
|
-
await flush()
|
|
510
|
-
tree = renderPanel()
|
|
511
|
-
const previewBtn2 = find(tree, (n) => n.type === 'button' && n.props.children === '立即预览')
|
|
512
|
-
previewBtn2.props.onClick()
|
|
513
|
-
await flush(); await flush(); await flush()
|
|
514
|
-
check('立即预览使用未保存的 draft(voicePack=g)', windowStub.__DSH_STARTUP__ && windowStub.__DSH_STARTUP__.voicePack === 'g', windowStub.__DSH_STARTUP__ && windowStub.__DSH_STARTUP__.voicePack)
|
|
515
|
-
check('preview 合并 draft 的源码标记存在', code.includes('j.config, draft || {}'))
|
|
502
|
+
check('立即预览调用 __DSH_STARTUP_API__.replay()', windowStub.__replayed === true)
|
|
503
|
+
/* v2.13.15 回归:选完「配音音色」直接点预览(还没点保存)也必须按当前选择播 */
|
|
504
|
+
tree = renderPanel()
|
|
505
|
+
const voiceSel = walk(tree).filter((n) => n.type === 'select' && Array.isArray(n.props.children) && n.props.children.some((o) => o && o.props.value === 'g'))[0]
|
|
506
|
+
check('配音音色下拉能从 /voices 拿到音色G', !!voiceSel, JSON.stringify(walk(tree).filter((n) => n.type === 'select').map((n) => (n.props.children || []).map((o) => o && o.props.value))))
|
|
507
|
+
if (voiceSel) {
|
|
508
|
+
voiceSel.props.onChange({ target: { value: 'g' } })
|
|
509
|
+
await flush()
|
|
510
|
+
tree = renderPanel()
|
|
511
|
+
const previewBtn2 = find(tree, (n) => n.type === 'button' && n.props.children === '立即预览')
|
|
512
|
+
previewBtn2.props.onClick()
|
|
513
|
+
await flush(); await flush(); await flush()
|
|
514
|
+
check('立即预览使用未保存的 draft(voicePack=g)', windowStub.__DSH_STARTUP__ && windowStub.__DSH_STARTUP__.voicePack === 'g', windowStub.__DSH_STARTUP__ && windowStub.__DSH_STARTUP__.voicePack)
|
|
515
|
+
check('preview 合并 draft 的源码标记存在', code.includes('j.config, draft || {}'))
|
|
516
516
|
}
|
|
517
517
|
delete windowStub.__DSH_STARTUP_API__
|
|
518
518
|
previewBtn.props.onClick()
|
|
@@ -463,7 +463,7 @@ ok(intervals.every((t) => t.cleared) || intervals.length === 0, '旧的 interval
|
|
|
463
463
|
intervals.map((t) => (t.cleared ? 'cleared' : 'live')).join(','))
|
|
464
464
|
|
|
465
465
|
console.log('\n=== ⑦ v2.13.0 测试钩子 / BUILD ===')
|
|
466
|
-
ok(mod.__BUILD === 'cw-
|
|
466
|
+
ok(mod.__BUILD === 'cw-43', '__BUILD = cw-43(排查浏览器跑的是不是新包)', String(mod.__BUILD))
|
|
467
467
|
ok(mod.__VIDEO_ID === 'dsh-cw-video', '__VIDEO_ID = dsh-cw-video', String(mod.__VIDEO_ID))
|
|
468
468
|
ok(typeof mod.__startShuffle === 'function', '__startShuffle 导出')
|
|
469
469
|
ok(typeof mod.__stopShuffle === 'function', '__stopShuffle 导出')
|