imp: log track into recents after 10 secs
This commit is contained in:
parent
d286c80540
commit
1c96940828
1 changed files with 13 additions and 14 deletions
27
js/events.js
27
js/events.js
|
|
@ -14,7 +14,7 @@ export function initializePlayerEvents(player, audioPlayer, scrobbler, ui) {
|
||||||
const repeatBtn = document.getElementById('repeat-btn');
|
const repeatBtn = document.getElementById('repeat-btn');
|
||||||
|
|
||||||
// History tracking
|
// History tracking
|
||||||
let lastLoggedTrackId = null;
|
let historyLoggedTrackId = null;
|
||||||
|
|
||||||
// Sync UI with player state on load
|
// Sync UI with player state on load
|
||||||
if (player.shuffleActive) {
|
if (player.shuffleActive) {
|
||||||
|
|
@ -31,23 +31,12 @@ export function initializePlayerEvents(player, audioPlayer, scrobbler, ui) {
|
||||||
repeatBtn.title = 'Repeat';
|
repeatBtn.title = 'Repeat';
|
||||||
}
|
}
|
||||||
|
|
||||||
audioPlayer.addEventListener('play', async () => {
|
audioPlayer.addEventListener('play', () => {
|
||||||
if (player.currentTrack) {
|
if (player.currentTrack) {
|
||||||
// Scrobble
|
// Scrobble
|
||||||
if (scrobbler.isAuthenticated() && lastFMStorage.isEnabled()) {
|
if (scrobbler.isAuthenticated() && lastFMStorage.isEnabled()) {
|
||||||
scrobbler.updateNowPlaying(player.currentTrack);
|
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;
|
playPauseBtn.innerHTML = SVG_PAUSE;
|
||||||
|
|
@ -71,13 +60,23 @@ export function initializePlayerEvents(player, audioPlayer, scrobbler, ui) {
|
||||||
player.playNext();
|
player.playNext();
|
||||||
});
|
});
|
||||||
|
|
||||||
audioPlayer.addEventListener('timeupdate', () => {
|
audioPlayer.addEventListener('timeupdate', async () => {
|
||||||
const { currentTime, duration } = audioPlayer;
|
const { currentTime, duration } = audioPlayer;
|
||||||
if (duration) {
|
if (duration) {
|
||||||
const progressFill = document.getElementById('progress-fill');
|
const progressFill = document.getElementById('progress-fill');
|
||||||
const currentTimeEl = document.getElementById('current-time');
|
const currentTimeEl = document.getElementById('current-time');
|
||||||
progressFill.style.width = `${(currentTime / duration) * 100}%`;
|
progressFill.style.width = `${(currentTime / duration) * 100}%`;
|
||||||
currentTimeEl.textContent = formatTime(currentTime);
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue