// ==UserScript== // @name Udemy Auto Enroll Free Courses // @namespace http://tampermonkey.net/ // @version 0.1.2.4 // @description Udemy auto enroll free courses // @author 0x01x02x03 // @license MIT // @match https://www.udemy.com/course/*/* // @match https://www.udemy.com/cart/checkout/express/course/*/* // @icon https://www.google.com/s2/favicons?sz=64&domain=udemy.com // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; let beenExecutedOne = false; let beenExecutedTwo = false; function courseIsFree(){ let freeCourse = document.body.querySelector("#udemy > div.ud-main-content-wrapper > div.ud-main-content > div > div > div:nth-child(3) > div.heading > div.ud-container.lead-container > div:nth-child(2) > div > div > div > div > div.buy-button.buy-box--buy-box-item--2RETv.buy-box--buy-button--35r28 > div > button"); if (freeCourse.textContent == 'Enroll now'){ alert("This course is free, and we gonna add it to your library"); freeCourse.click(); } else{ alreadyOwned(); } } function alreadyOwned(){ let owned = document.body.querySelector('#udemy > div.ud-main-content-wrapper > div.ud-main-content > div > div > div.paid-course-landing-page__container > div.sidebar-container-position-manager > div.course-landing-page_sidebar-container > div > div:nth-child(1) > div.sidebar-container--purchase-section--2DONZ > div > div > div.generic-purchase-section--buy-box-main--2o6Au > div > div.buy-button.buy-box--buy-box-item--2RETv.buy-box--buy-button--35r28 > div > button').textContent; if (owned == 'Go to course'){ alert("Course already owned!"); } else{ stillFree(); } } function stillFree(){ let freeOrNot = document.body.querySelector("#udemy > div.ud-main-content-wrapper > div.ud-main-content > div > div > div.paid-course-landing-page__container > div.sidebar-container-position-manager > div.course-landing-page_sidebar-container > div > div:nth-child(1) > div.sidebar-container--purchase-section--2DONZ > div > div > div.generic-purchase-section--buy-box-main--2o6Au > div > div.buy-button.buy-box--buy-box-item--2RETv.buy-box--buy-button--35r28 > div > button").textContent; if (freeOrNot == 'Buy now'){ alert("Course no longer free, sorry"); } else{ execOnce(); } } function execOnce() { if (!beenExecutedOne) autoEnrollUno(); if (!beenExecutedTwo) autoEnrollDos(); } function autoEnrollUno() { let e = document.querySelectorAll('#udemy > div.ud-main-content-wrapper > div.ud-main-content > div > div > div.paid-course-landing-page__container > div.sidebar-container-position-manager > div.course-landing-page_sidebar-container > div > div:nth-child(1) > div.sidebar-container--purchase-section--2DONZ > div > div > div.generic-purchase-section--buy-box-main--2o6Au > div > div.buy-button.buy-box--buy-box-item--2RETv.buy-box--buy-button--35r28 > div > button')[Math.random() * 100 >= 50 ? 0 : 1]; if (e) { console.log("Enrolled Udemy One", e); beenExecutedOne = true; e.click(); } else { console.log("No Button found yet, waiting 5 seconds"); setTimeout(execOnce, 5000); } } function autoEnrollDos() { let e = document.querySelectorAll('#udemy > div.ud-main-content-wrapper > div.ud-main-content > div > div > div > div.marketplace-checkout--checkout-summary--gBdnZ > div > div.marketplace-checkout--marketplace-checkout-button-container--1cpeV > div.marketplace-checkout--button-term-wrapper--2_M-- > div.checkout-button--checkout-button--container--RQKAM > button')[Math.random() * 100 >= 50 ? 0 : 1]; if (e) { console.log("Enrolled Udemy Two", e); beenExecutedTwo = true; e.click(); } else { console.log("No Button found yet, waiting 5 seconds"); setTimeout(execOnce, 5000); } } function firstCheck(){ //console.log("waiting 3 seconds"); //setTimeout(courseIsFree, 3000); courseIsFree(); } firstCheck(); })();