SkillShare Obsidian Template

Script to copy SkillShare course info as YAML & lessons titles with duration

// ==UserScript==
// @name         SkillShare Obsidian Template
// @namespace    http://tampermonkey.net/
// @version      2024-09-28
// @description  Script to copy SkillShare course info as YAML & lessons titles with duration
// @author       foysalBn
// @match        https://www.skillshare.com/*/classes/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=skillshare.com
// @grant        GM_setClipboard
// @grant        GM_registerMenuCommand
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    // Function to copy text to the clipboard
    function copyTitle(){
        const title = document.querySelector('.class-details-header h1').innerText
        GM_setClipboard(title);
    }
    function copyMarkDownlink(){
        const title = document.querySelector('.class-details-header h1').innerText
        const src = document.location.href
        GM_setClipboard(`[${title}](${src})`);
    }

    function copyObsidianTemplate() {
        const src = document.location.href
        const title = document.querySelector('.class-details-header h1').innerText
        const teacher = document.querySelector('.class-details-header-teacher a').innerText;
        const duration = document.querySelector('#total-video-container').innerText;
        let sections = document.querySelectorAll('.session-item-info')
        console.log(sections)
        let lessons=''
        sections.forEach((sec,i)=>{
            lessons +='## '+(i+1)+'. ' + sec.querySelector('.session-item-title h3').innerText
                + " ("+sec.querySelector('.duration h3').innerText+")\n\n\n"
        })

        const textToCopy = `---
src: "${src}"
title: "${title}"
teacher: "${teacher}"
duration: "${duration}"
current lesson: "1"
completed: false
---

${lessons}
`
        GM_setClipboard(textToCopy);
    }

    // Register menu command
    GM_registerMenuCommand('Copy Course Title', copyTitle);
    GM_registerMenuCommand('Copy MarkDown Link [Title](link)', copyMarkDownlink);
    GM_registerMenuCommand('Copy Obsidian Note Template', copyObsidianTemplate);


})();