Example #1
0
function sendScrobble(track) {
	let timestamp = clock.getStartTimestamp();

	logger.info('going to scrobble this track on stop');

	clearScrobblingTimeout();
	player.onResumed.removeListener(setScrobblingTimeout);

	player.onStopped.addListener(function _handleStopped() {
		// only once
		player.onStopped.removeListener(_handleStopped);

		lastfm.scrobble(timestamp, track)
			.then(() => logger.info('scrobbled'))
			.catch((error) => logger.info('scrobbling error:', error));
	});
}
Example #2
0
function setScrobblingTimeout(track) {
	let halftime = Math.floor(track.duration * SCROBBLING_MIN_PERCENT - clock.getPlayedTime());

	scrobbleTimeout = setTimeout(sendScrobble.bind(null, track), halftime);
}