(function() { console.log(" "); const config = { shortClass: '.short', posterClass: '.short-poster', storagePrefix: 'video_progress_' }; const style = document.createElement('style'); style.textContent = ` .video-progress-container { position: absolute; bottom: 0; left: 0; width: 100%; height: 4px; background-color: rgba(0, 0, 0, 0.3); z-index: 99; overflow: hidden; } .progress-filled { position: absolute; top: 2px; left: 1px; height: 100%; width: 0%; background-color: #b40000c7; } `; document.head.appendChild(style); function getVideoIdFromUrl(url) { if (!url) return null; const matches = url.match(/\/([^\/]+?-[^\/]+?)(?:\.html)?$/); return matches ? matches[1] : url; } function addProgressBars() { const shorts = document.querySelectorAll(config.shortClass); console.log("Nombre de miniatures trouvées:", shorts.length); shorts.forEach((short, index) => { const poster = short.querySelector(config.posterClass); if (!poster) { console.log("Poster non trouvé pour la miniature #" + index); return; } const href = poster.getAttribute('href'); if (!href) { console.log("Pas d'URL trouvée pour la miniature #" + index); return; } const videoId = getVideoIdFromUrl(href); console.log("ID vidéo pour la miniature #" + index + ":", videoId); for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); if (key.startsWith(config.storagePrefix) && key.includes(videoId)) { try { const progressData = localStorage.getItem(key); const progress = JSON.parse(progressData); if (progress && progress.percentage) { console.log("Progression trouvée pour " + videoId + ":", progress.percentage + "%"); const progressContainer = document.createElement('div'); progressContainer.className = 'video-progress-container'; const progressFilled = document.createElement('div'); progressFilled.className = 'progress-filled'; progressFilled.style.width = progress.percentage + '%'; progressContainer.appendChild(progressFilled); poster.appendChild(progressContainer); console.log("Barre de progression ajoutée à la miniature #" + index); break; } } catch (e) { console.error("Erreur lors du traitement de la progression:", e); } } } }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', addProgressBars); } else { addProgressBars(); } setTimeout(addProgressBars, 1000); })();