Currently Listening: finished is 90% played, not read
Opening an episode marks it read, so filtering on read hid every episode anyone had started. The player now also reports the length it measured, filling in one the feed left out. Fixes #14. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1528,9 +1528,12 @@ function savePos(){
|
||||
if(!player.guid) return;
|
||||
player.saveAt=audio.currentTime;
|
||||
if(player.entry) player.entry.position=Math.floor(audio.currentTime);
|
||||
// The measured length stands in for one the feed left out: without it Currently Listening
|
||||
// cannot tell a finished episode from a started one. NaN before metadata, Infinity on a stream.
|
||||
const duration=isFinite(audio.duration)?Math.floor(audio.duration):null;
|
||||
navigator.sendBeacon?.(
|
||||
`/api/entries/${encodeURIComponent(player.feed)}/${encodeURIComponent(player.guid)}/position`,
|
||||
new Blob([JSON.stringify({secs:Math.floor(audio.currentTime)})],{type:'application/json'}));
|
||||
new Blob([JSON.stringify({secs:Math.floor(audio.currentTime),duration})],{type:'application/json'}));
|
||||
}
|
||||
audio.addEventListener('pause',savePos);
|
||||
audio.addEventListener('ended',()=>{savePos();markPlayed();$('#pplay').innerHTML=ICON.play});
|
||||
|
||||
Reference in New Issue
Block a user