您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows the creation date of the course below the latest update date.
- // ==UserScript==
- // @name Yet Another Udemy Course Creation Date Getter
- // @namespace <https://github.com/lundeen-bryan>
- // @version 2.0.0
- // @description Shows the creation date of the course below the latest update date.
- // @author lundeen-bryan based on a script by scriptbug
- // @match https://www.udemy.com/course/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=udemy.com
- // @grant GM_addStyle
- // @license GPL-2.0-or-later
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
- // ==/UserScript==
- var $ = window.$;
- var x = document.body.getAttribute("data-clp-course-id");
- $.get("https://www.udemy.com/api-2.0/courses/" + x + "/?fields[course]=created", function (data) {
- var date = new Date(data.created);
- var formattedDate = (date.getMonth() + 1) + "/" + date.getFullYear(); // Adjust the format as needed
- // Function to create the date element
- function createDateElement() {
- var creationDateDiv = document.createElement("div");
- creationDateDiv.className = "clp-lead__element-item";
- creationDateDiv.innerHTML = '<span>Created on ' + formattedDate + '</span>';
- return creationDateDiv;
- }
- // Function to insert the creation date
- function insertCreationDate() {
- var updateDateElement = document.querySelector("[data-purpose='last-update-date']");
- if (updateDateElement) {
- updateDateElement.parentNode.insertBefore(createDateElement(), updateDateElement.nextSibling);
- return true;
- }
- return false;
- }
- // Try to insert immediately
- if (!insertCreationDate()) {
- // Use MutationObserver as the first fallback
- var observer = new MutationObserver(function (mutations, me) {
- if (insertCreationDate()) {
- me.disconnect(); // stop observing when done
- }
- });
- observer.observe(document, {
- childList: true,
- subtree: true
- });
- // Additional fallback: try again after a delay
- setTimeout(function () {
- if (!insertCreationDate()) {
- console.error("Could not insert the creation date after delay.");
- }
- }, 5000); // Wait for 5 seconds as the last resort
- }
- });