mooc2md

用来下载mooc上ppt的脚本

  1. // ==UserScript==
  2. // @name mooc2md
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description 用来下载mooc上ppt的脚本
  6. // @author Drelf2018
  7. // @match *://mooc1.chaoxing.com/mycourse/*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=chaoxing.com
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. function download(title, content) {
  13. // chatgpt 抄的下载代码
  14. var blob = new Blob([content], { type: "text/plain" });
  15. const url = URL.createObjectURL(blob);
  16. const a = document.createElement('a');
  17. a.href = url;
  18. a.download = title + ".md";
  19. a.click();
  20. URL.revokeObjectURL(url);
  21. }
  22.  
  23. function fetch() {
  24. // 获取 ppt 所在的 doc (嵌套了三个iframe
  25. var ifr, doc = document
  26. for (var i = 0; i < 3; i++) {
  27. ifr = doc.getElementsByTagName("iframe")[0]
  28. doc = ifr.contentDocument
  29. }
  30.  
  31. // 获取当前文档名
  32. var title = document.getElementsByClassName("posCatalog_active")[0].innerText;
  33. title = title.replace("\n已完成", "")
  34. var md = `# ${title}`
  35.  
  36. // 枚举图片链接
  37. var result = doc.evaluate("/html/body/div[1]/img", doc, null, XPathResult.ANY_TYPE, null);
  38. var nodes = result.iterateNext();
  39. var j = 1
  40. while(nodes) {
  41. md += "![" + j + "](" + nodes.src + ")\n"
  42. nodes = result.iterateNext();
  43. j += 1
  44. }
  45.  
  46. // 等待确认并下载
  47. if(confirm(title + "\n总页数:" + (j - 1))) download(title, md)
  48. }
  49.  
  50. (function () {
  51. 'use strict';
  52. var span = document.createElement('span');
  53. span.style.position = "fixed"
  54. span.style.width = "50px"
  55. span.style.height = "50px"
  56. span.style.backgroundColor = "white"
  57. span.style.borderRadius = "25px"
  58. span.style.boxShadow = "0px 1px 3px grey"
  59. span.style.top = "50px"
  60. span.style.left = "10px"
  61. span.innerHTML = "下载"
  62. span.style.textAlign = "center";
  63. span.style.lineHeight = "50px";
  64. span.style.fontSize = "15px";
  65. span.onclick = fetch
  66. document.body.appendChild(span);
  67. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址