From 4adf53a274d6dc0a919b7d124178a17cf093e756 Mon Sep 17 00:00:00 2001 From: grepole121 Date: Tue, 12 Apr 2016 21:40:56 +0100 Subject: [PATCH 1/3] Added a lessons per day Added a feature where it shows how much lessons you will have to do each day (up to 2 decimal places) to finish the tree by a certain date that you can enter by clicking the "D" icon and adding the date in the format "YYYY-MM-DD" into the prompt. --- duolingo/lessons_progress.user.js | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/duolingo/lessons_progress.user.js b/duolingo/lessons_progress.user.js index d2a8e0e..6ce2aa4 100644 --- a/duolingo/lessons_progress.user.js +++ b/duolingo/lessons_progress.user.js @@ -64,6 +64,29 @@ function f($) { estText.appendTo(stats); } } + + function getCookie(cname) { + var name = cname + "="; + var ca = document.cookie.split(';'); + for(var i=0; i' + normalText + ' ' + name + ''); var percentage = $('' + altText + ''); @@ -81,12 +106,34 @@ function f($) { $('.' + name + '-icon').mouseover(function () { $('#' + name + '_text').hide(); $('#' + name + '_percent').css('display', 'inline-block'); + + if (name == "Lessons-Per-Day" && mouseOverCounter===0){ + mouseOverCounter++; + clickWaiter(); + } + }).mouseout(function () { $('#' + name + '_percent').hide(); $('#' + name + '_text').show(); }); return elem; } + + function clickWaiter(){ + + $('.Lessons-Per-Day-icon').click(function () { + var goalDateUser = prompt("Please enter the date you would like to finish by","YYYY-MM-DD"); + function goalCookie(cname, cvalue) { + var d = new Date(); + d.setTime(d.getTime() + (36500*24*60*60*1000)); + var expires = "expires="+d.toUTCString(); + document.cookie = cname + "=" + cvalue + "; " + expires; + location.reload(); + } + goalCookie("finishDateGoal", goalDateUser); + }); + } + $(document).ready(function () { duolingoStats(); }); From 7fa13e07b13e8fbd2d1bd8ece407d38d6fb5272f Mon Sep 17 00:00:00 2001 From: grepole121 Date: Tue, 12 Apr 2016 21:42:35 +0100 Subject: [PATCH 2/3] Update lessons_progress.user.js --- duolingo/lessons_progress.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/duolingo/lessons_progress.user.js b/duolingo/lessons_progress.user.js index 6ce2aa4..977b4a9 100644 --- a/duolingo/lessons_progress.user.js +++ b/duolingo/lessons_progress.user.js @@ -85,7 +85,7 @@ function f($) { var lessonPerDay = createElem(lessonsEachDay, goalFinishDateLocale + " Goal Finish Date", 'Lessons-Per-Day', 'D'); lessonPerDay.appendTo(stats); - //End of created by me + if ($('#app').hasClass('home') && !$('.lesson-progress').length) { $('.strengthen-skills-container').before(stats); From 3c7cda35ce738da69ad9501c6d5a00dac00134ec Mon Sep 17 00:00:00 2001 From: grepole121 Date: Fri, 15 Apr 2016 22:45:58 +0100 Subject: [PATCH 3/3] Added delay to page refresh to ensure cookie is set --- duolingo/lessons_progress.user.js | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/duolingo/lessons_progress.user.js b/duolingo/lessons_progress.user.js index 977b4a9..ef45c15 100644 --- a/duolingo/lessons_progress.user.js +++ b/duolingo/lessons_progress.user.js @@ -64,19 +64,18 @@ function f($) { estText.appendTo(stats); } } - function getCookie(cname) { - var name = cname + "="; - var ca = document.cookie.split(';'); - for(var i=0; i' + normalText + ' ' + name + ''); @@ -106,19 +103,16 @@ function f($) { $('.' + name + '-icon').mouseover(function () { $('#' + name + '_text').hide(); $('#' + name + '_percent').css('display', 'inline-block'); - if (name == "Lessons-Per-Day" && mouseOverCounter===0){ mouseOverCounter++; clickWaiter(); } - }).mouseout(function () { $('#' + name + '_percent').hide(); $('#' + name + '_text').show(); }); return elem; } - function clickWaiter(){ $('.Lessons-Per-Day-icon').click(function () { @@ -128,12 +122,13 @@ function f($) { d.setTime(d.getTime() + (36500*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + "; " + expires; - location.reload(); + setTimeout(function(){ + location.reload(); + }, 250); } goalCookie("finishDateGoal", goalDateUser); }); } - $(document).ready(function () { duolingoStats(); });