/** * Frontend Script for Last Played Track Logger */ jQuery(document).ready(function($) { /** * Auto refresh Now Playing */ function initAutoRefresh() { var widget = $('#lptl-player-widget'); var refreshEnabled = widget.data('auto-refresh') === 'true'; if (!refreshEnabled) return; // Refresh every 10 seconds setInterval(function() { refreshNowPlaying(); }, 10000); } /** * Refresh Now Playing via AJAX */ function refreshNowPlaying() { var display = $('#lptl-current-track-display'); if (!display.length) return; $.ajax({ url: lptl_frontend.ajax_url, method: 'POST', data: { action: 'lptl_get_current_track', nonce: lptl_frontend.nonce }, success: function(response) { if (response.success && response.data.track) { var track = response.data.track; var title = track; var artist = ''; // Parse artist - title if (track.indexOf(' - ') !== -1) { var parts = track.split(' - '); artist = parts[0]; title = parts[1] || parts[0]; } display.text(title); // Update artist if exists var artistEl = $('.lptl-now-playing-artist'); if (artistEl.length) { artistEl.text(artist); } } }, error: function() { // Silent fail } }); } /** * Refresh History via AJAX */ function refreshHistory(limit) { var historyList = $('.lptl-history-list'); if (!historyList.length) return; $.ajax({ url: lptl_frontend.ajax_url, method: 'POST', data: { action: 'lptl_get_history', limit: limit || 5, nonce: lptl_frontend.nonce }, success: function(response) { if (response.success && response.data.logs) { var logs = response.data.logs; var html = ''; $.each(logs, function(index, log) { var track = log.track || ''; var artist = ''; var title = track; if (track.indexOf(' - ') !== -1) { var parts = track.split(' - '); artist = parts[0]; title = parts[1] || parts[0]; } var isCurrent = index === 0 ? ' lptl-history-item-current' : ''; var sourceBadge = log.source === 'cron' ? ' 🤖' : ''; html += '
'; html += '#' + (index + 1) + ''; html += '
'; html += '' + escapeHtml(title) + ''; if (artist) { html += ' - ' + escapeHtml(artist) + ''; } html += '
'; html += '
'; html += escapeHtml(log.time || ''); html += sourceBadge; html += '
'; html += '
'; }); historyList.html(html); // Update count var countEl = $('.lptl-history-count'); if (countEl.length) { countEl.text(logs.length + ' lagu terakhir'); } } }, error: function() { // Silent fail } }); } /** * Escape HTML */ function escapeHtml(str) { if (!str) return ''; return str .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } /** * Update clock */ function updateClock() { var now = new Date(); var timeStr = now.getHours().toString().padStart(2, '0') + ':' + now.getMinutes().toString().padStart(2, '0') + ':' + now.getSeconds().toString().padStart(2, '0'); $('.lptl-time').each(function() { if (!$(this).closest('.lptl-now-playing').length) return; $(this).text(timeStr + ' WIB'); }); } // Initialize initAutoRefresh(); updateClock(); setInterval(updateClock, 1000); });
Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the unlimited-elements-for-elementor domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u503210056/domains/rasikafm.com/public_html/wp-includes/functions.php on line 6170

Notice: Fungsi register_post_type ditulis secara tidak benar. Nama tipe pos harus memiliki 1 sampai 20 karakter. Silakan lihat Debugging di WordPress untuk informasi lebih lanjut. (Pesan ini ditambahkan pada versi 4.2.0.) in /home/u503210056/domains/rasikafm.com/public_html/wp-includes/functions.php on line 6170

Notice: Fungsi register_post_type ditulis secara tidak benar. Nama tipe pos harus memiliki 1 sampai 20 karakter. Silakan lihat Debugging di WordPress untuk informasi lebih lanjut. (Pesan ini ditambahkan pada versi 4.2.0.) in /home/u503210056/domains/rasikafm.com/public_html/wp-includes/functions.php on line 6170

Warning: Cannot modify header information - headers already sent by (output started at /home/u503210056/domains/rasikafm.com/public_html/wp-content/plugins/last-played-track-logger/frontend-display.php:1) in /home/u503210056/domains/rasikafm.com/public_html/wp-includes/pluggable.php on line 1535

Warning: Cannot modify header information - headers already sent by (output started at /home/u503210056/domains/rasikafm.com/public_html/wp-content/plugins/last-played-track-logger/frontend-display.php:1) in /home/u503210056/domains/rasikafm.com/public_html/wp-includes/pluggable.php on line 1538