Greasy Fork is available in English.
Automatically starts next lesson when Duolingo loads.
当前为
// ==UserScript==
// @name Duolingo autoStart next Lesson
// @description Automatically starts next lesson when Duolingo loads.
// @version 1.0
// @namespace minirock
// @match https://www.duolingo.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// ==/UserScript==
function next_lesson_scroll() {
let lessons = document.querySelectorAll("div[class='QmbDT']");
for (let i = 0; i < lessons.length; ++i) {
var lesson = lessons[i].querySelector("div[data-test='level-crown']");
if (lesson === null) {
var last_finished = i;
break;
}
}
// go to next unfinished lesson
lessons[last_finished].querySelector("div[class='_2albn']").click();
}
function next_lesson_start() {
let lessons = document.querySelectorAll("div[class='QmbDT']");
for (let i = 0; i < lessons.length; ++i) {
var lesson = lessons[i].querySelector("div[data-test='level-crown']");
if (lesson === null) {
var last_finished = i;
break;
}
}
// go to next unfinished lesson
lessons[last_finished].querySelector("div[class='_2albn']").click();
var status = Array.prototype.filter.call(lessons[last_finished].querySelectorAll("div[class='_2yvEQ']"), function (element) {
return RegExp('^0% Complete').test(element.textContent);
});
// status > 0 == lesson : tips
if (status.length !== 0) {
console.log('TIPS');
lessons[last_finished].querySelectorAll("button")[1].click()
} else {
console.log('LESSON');
lessons[last_finished].querySelector("button[data-test='start-button']").click();
}
}
function next_lesson_start_from_tips() {
let tips = document.querySelector("div[class='_2LApJ']");
if (tips !== null) {
tips.querySelectorAll("button")[0].click();
}
}
$(document).ready(function () {
next_lesson_start();
});
let keyEventListener = function (event) {
if (event.keyCode === 13) {
next_lesson_start_from_tips();
next_lesson_start();
}
}
document.addEventListener("keyup", keyEventListener);