DeadAir's wording: cut the dead air (#172)
The switch, the button's tooltip, the toasts and the time saved now say what the name already pictures, the dead air cut, instead of explaining it as silences shortened each time. The caption says the voice keeps its own pace, which is the part people doubt, and names the shows to leave out: stories whose pauses are part of the telling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -365,8 +365,8 @@ function due(ts){
|
|||||||
/// admin is sent (issue #19); this used to hold them too, shown to admins only.
|
/// admin is sent (issue #19); this used to hold them too, shown to admins only.
|
||||||
function deadSavedText(me){
|
function deadSavedText(me){
|
||||||
const s=me&&me.deadair_saved||0;
|
const s=me&&me.deadair_saved||0;
|
||||||
return s?`It has saved you ${spanText(s)}, on episodes you heard three quarters of or more.`
|
return s?`It has saved you ${spanText(s)} of dead air, on episodes you heard three quarters of or more.`
|
||||||
:'Turn it on in a show\'s settings, or beside the speed while it plays, to shorten its long silences.';
|
:'Turn it on in a show\'s settings, or beside the speed while it plays, to cut the dead air from it.';
|
||||||
}
|
}
|
||||||
|
|
||||||
async function prefsModal(){
|
async function prefsModal(){
|
||||||
@@ -528,8 +528,9 @@ function settingsModal(f, newUrl?: string){
|
|||||||
${sw(`<input type="checkbox" role="switch" id="sexp"${f.allow_explicit?' checked':''}>`,'Include explicit items')}
|
${sw(`<input type="checkbox" role="switch" id="sexp"${f.allow_explicit?' checked':''}>`,'Include explicit items')}
|
||||||
</div></div></div></div>
|
</div></div></div></div>
|
||||||
<div class="ffield">${sw(`<input type="checkbox" role="switch" id="sdead"${f.deadair?' checked':''}>`,'DeadAir',' lead')}
|
<div class="ffield">${sw(`<input type="checkbox" role="switch" id="sdead"${f.deadair?' checked':''}>`,'DeadAir',' lead')}
|
||||||
<p class="cap">Plays ${isGroup?'these shows':'this show'} with long silences shortened, so episodes finish
|
<p class="cap">Cuts the dead air: long silences in ${isGroup?'these shows':'this show'} shrink to a beat, so
|
||||||
sooner without sounding sped up. Leave it off for readings whose pauses matter.</p></div>
|
episodes finish sooner and every voice keeps its own pace. Leave it off for stories whose pauses
|
||||||
|
are part of the telling.</p></div>
|
||||||
${isGroup?'':`<div class="ffield"><label class="flabel" for="sblockin">Hide items that mention</label>
|
${isGroup?'':`<div class="ffield"><label class="flabel" for="sblockin">Hide items that mention</label>
|
||||||
<div class="chips" id="sblock">${chipsHTML(f.blocked||[],'sblockin')}</div>
|
<div class="chips" id="sblock">${chipsHTML(f.blocked||[],'sblockin')}</div>
|
||||||
<p class="cap">Whole words or phrases. Hidden from your list and not downloaded for you, along
|
<p class="cap">Whole words or phrases. Hidden from your list and not downloaded for you, along
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ function epEl(e){
|
|||||||
num&&`<span>${num}</span>`,
|
num&&`<span>${num}</span>`,
|
||||||
left&&`<span>${left}</span>`,
|
left&&`<span>${left}</span>`,
|
||||||
others>0&&`<span>+${others} more file${others===1?'':'s'}</span>`,
|
others>0&&`<span>+${others} more file${others===1?'':'s'}</span>`,
|
||||||
enc&&enc.deadair>0&&`<span title="DeadAir shortened its long silences">${shorter(enc.deadair)}</span>`,
|
enc&&enc.deadair>0&&`<span title="DeadAir cut its dead air">${shorter(enc.deadair)}</span>`,
|
||||||
enc&&enc.last_error&&enc.state==='error'&&`<span style="color:var(--bad)">${esc(enc.last_error)}</span>`,
|
enc&&enc.last_error&&enc.state==='error'&&`<span style="color:var(--bad)">${esc(enc.last_error)}</span>`,
|
||||||
].filter(Boolean).join('<span class="dot"></span>')}</div>
|
].filter(Boolean).join('<span class="dot"></span>')}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -124,8 +124,7 @@ function paintDead(){
|
|||||||
if(b.hidden) return;
|
if(b.hidden) return;
|
||||||
b.setAttribute('aria-pressed',String(!!f.deadair));
|
b.setAttribute('aria-pressed',String(!!f.deadair));
|
||||||
b.innerHTML=f.deadair?ICON.deadairOn:ICON.deadair;
|
b.innerHTML=f.deadair?ICON.deadairOn:ICON.deadair;
|
||||||
b.title=f.deadair?'DeadAir is on for this show: long silences are shortened'
|
b.title=f.deadair?'DeadAir is cutting the dead air from this show':'DeadAir: cut the dead air from this show';
|
||||||
:'Turn on DeadAir for this show: long silences are shortened';
|
|
||||||
}
|
}
|
||||||
$('#pdead').onclick=async()=>{
|
$('#pdead').onclick=async()=>{
|
||||||
const f=S.feeds.find(x=>x.id===player.feed); if(!f) return;
|
const f=S.feeds.find(x=>x.id===player.feed); if(!f) return;
|
||||||
@@ -134,8 +133,8 @@ $('#pdead').onclick=async()=>{
|
|||||||
catch(err){ toast(err.message,true); return; }
|
catch(err){ toast(err.message,true); return; }
|
||||||
f.deadair=on; paintDead();
|
f.deadair=on; paintDead();
|
||||||
const switched=await switchVersion();
|
const switched=await switchVersion();
|
||||||
toast(!on?'DeadAir is off for this show':switched?'DeadAir is on for this show'
|
toast(!on?'DeadAir is off for this show':switched?'DeadAir is cutting the dead air from this show'
|
||||||
:'DeadAir is on for this show. Each episode is shortened a few minutes after it downloads.');
|
:'DeadAir is on for this show. Episodes lose their dead air a few minutes after they download.');
|
||||||
renderEntries();
|
renderEntries();
|
||||||
};
|
};
|
||||||
/// Carries on at the same place in the other version of what is playing, once DeadAir has been
|
/// Carries on at the same place in the other version of what is playing, once DeadAir has been
|
||||||
|
|||||||
Reference in New Issue
Block a user