imp: log track into recents after 10 secs

This commit is contained in:
Julien Maille 2025-12-27 21:47:18 +01:00
parent d286c80540
commit 1c96940828

View file

@ -14,7 +14,7 @@ export function initializePlayerEvents(player, audioPlayer, scrobbler, ui) {
const repeatBtn = document.getElementById('repeat-btn');
// History tracking
let lastLoggedTrackId = null;
let historyLoggedTrackId = null;
// Sync UI with player state on load
if (player.shuffleActive) {
@ -31,23 +31,12 @@ export function initializePlayerEvents(player, audioPlayer, scrobbler, ui) {
repeatBtn.title = 'Repeat';
}
audioPlayer.addEventListener('play', async () => {
audioPlayer.addEventListener('play', () => {
if (player.currentTrack) {
// Scrobble
if (scrobbler.isAuthenticated() && lastFMStorage.isEnabled()) {
scrobbler.updateNowPlaying(player.currentTrack);
}
// Log to local history if it's a new track session
if (player.currentTrack.id !== lastLoggedTrackId) {
await db.addToHistory(player.currentTrack);
lastLoggedTrackId = player.currentTrack.id;
// Update Recent Page if active
if (window.location.hash === '#recent') {
ui.renderRecentPage();
}
}
}
playPauseBtn.innerHTML = SVG_PAUSE;
@ -71,13 +60,23 @@ export function initializePlayerEvents(player, audioPlayer, scrobbler, ui) {
player.playNext();
});
audioPlayer.addEventListener('timeupdate', () => {
audioPlayer.addEventListener('timeupdate', async () => {
const { currentTime, duration } = audioPlayer;
if (duration) {
const progressFill = document.getElementById('progress-fill');
const currentTimeEl = document.getElementById('current-time');
progressFill.style.width = `${(currentTime / duration) * 100}%`;
currentTimeEl.textContent = formatTime(currentTime);
// Log to history after 10 seconds of playback
if (currentTime >= 10 && player.currentTrack && player.currentTrack.id !== historyLoggedTrackId) {
historyLoggedTrackId = player.currentTrack.id;
await db.addToHistory(player.currentTrack);
if (window.location.hash === '#recent') {
ui.renderRecentPage();
}
}
}
});