Skip to content

Instantly share code, notes, and snippets.

@mortenjohs
Created October 20, 2013 21:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mortenjohs/7075320 to your computer and use it in GitHub Desktop.
Save mortenjohs/7075320 to your computer and use it in GitHub Desktop.
Add overall lesson timing to video listings on Coursera
function pad2(number){
if (number<10) {
return "0" + parseInt(number);
} else {
return parseInt(number);
}
}
var sectionList = $(".course-item-list-section-list"),
headerList = $(".course-item-list-header"),
re = /(\d\d?)+([m|:])(\d\d)/,
totalTotalTime = 0,
viewedTotalTime = 0,
separator = "m";
hourSeparator = "h";
for(var i in headerList) {
var totalSectionTime = 0,
viewedSectionTime = 0,
sections = sectionList.eq(i).find("li"),
found = false;
for (var j in sections) {
var link = sections.eq(j).find(".lecture-link")[0];
if (link) {
var text = re.exec(link.text);
if (text && text.length > 2) {
var thisTime = parseInt(text[1])*60 + parseInt(text[3]);
separator = text[2];
if (thisTime>0) { found = true; }
totalSectionTime += thisTime;
if (sections.eq(j).hasClass("viewed")){ viewedSectionTime += thisTime; }
}
}
}
var timeRemaining = totalSectionTime-viewedSectionTime;
if (found && headerList.eq(i).find("h3")[0]) {
headerList.eq(i).find("h3")[0].innerText += " [" + parseInt(timeRemaining/60) + separator + pad2((totalSectionTime-viewedSectionTime)%60) + "/" + parseInt(totalSectionTime/60) + separator + pad2(totalSectionTime%60) +"]" ;
}
totalTotalTime += totalSectionTime;
viewedTotalTime += viewedSectionTime;
}
if (separator != "m") { hourSeparator = ":"; }
var totalTimeRemaining = totalTotalTime-viewedTotalTime;
$("h2.course-page-header")[0].innerText += " [" + parseInt((totalTimeRemaining)/3600) + hourSeparator + pad2((totalTimeRemaining%3600)/60) + separator + pad2(totalTimeRemaining%60) + "/" + parseInt(totalTotalTime/3600) + hourSeparator + pad2((totalTotalTime%3600)/60) + separator + pad2(totalTotalTime%60) +"]" ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment