Last active
August 20, 2025 18:52
-
-
Save faelp22/2437b6a7bad0583555a0b427ea862523 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
// Função para converter "mm:ss" em minutos | |
function timeToMinutes(timeStr) { | |
if (!timeStr) return 0; | |
const [min, sec] = timeStr.split(':').map(Number); | |
return min + (sec / 60); | |
} | |
// Formata minutos para "hh:mm" | |
function formatMinutes(mins) { | |
const h = Math.floor(mins / 60); | |
const m = Math.round(mins % 60); | |
return `${h}h ${m}min`; | |
} | |
// Para cada título de capítulo | |
document.querySelectorAll('p.MuiTypography-root.MuiTypography-body1').forEach(titleEl => { | |
// Sobe até o bloco do capítulo | |
const chapterBlock = titleEl.closest('.MuiAccordion-root'); | |
if (!chapterBlock) return; | |
// Busca todas as aulas desse capítulo | |
const lessons = chapterBlock.querySelectorAll('.MuiList-root .MuiButtonBase-root'); | |
let totalMinutes = 0; | |
let remainingMinutes = 0; | |
lessons.forEach(lesson => { | |
const timeEl = lesson.querySelector('.contentTime'); | |
if (!timeEl) return; | |
const minutes = timeToMinutes(timeEl.textContent.trim()); | |
// Verifica se a aula está feita | |
const main = lesson.querySelector('.accordionIconContainer main'); | |
const isDone = main && main.classList.contains('done'); | |
totalMinutes += minutes; | |
if (!isDone) remainingMinutes += minutes; | |
}); | |
// Concatena o resultado ao título do capítulo | |
titleEl.textContent += ` | Tempo total: ${formatMinutes(totalMinutes)} | Faltam: ${formatMinutes(remainingMinutes)}`; | |
}); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment