🏠 Home 

修身学堂整页下载

try to take over the world!


Install this script?
  1. // ==UserScript==
  2. // @name 修身学堂整页下载
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author You
  7. // @match http://gdslzstsg.superlib.libsou.com/node/409.jspx*
  8. // @grant GM_download
  9. // @connect http://photoapps.yd.chaoxing.com/*
  10. // ==/UserScript==
  11. (function () {
  12. 'use strict';
  13. const head = document.getElementsByTagName('head');
  14. head[0].insertAdjacentHTML('beforeend', `<style type="text/css">
  15. .hx-download-the-page{
  16. font-size:16px;
  17. line-height:30px;
  18. color:#999;
  19. cursor: pointer;
  20. user-select:none;
  21. }
  22. .hx-download-the-page:before{
  23. content:'';
  24. position: absolute;
  25. background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNTA4IDUwOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+IDxjaXJjbGUgc3R5bGU9ImZpbGw6I0ZGRDA1QjsiIGN4PSIyNTQiIGN5PSIyNTQiIHI9IjI1NCIvPiA8cGF0aCBzdHlsZT0iZmlsbDojRkZGRkZGOyIgZD0iTTM3Mi44LDE5NkgzNjhjLTIuNC00MC40LTM1LjYtNzIuNC03Ni40LTcyLjRjLTQsMC04LDAuNC0xMS42LDAuOGMtMTYtMjguNC00Ni00Ny42LTgwLjgtNDcuNiBjLTUxLjIsMC05Mi40LDQxLjYtOTIuNCw5Mi40YzAsMTAuOCwyLDIxLjIsNS4yLDMwLjhjLTI1LjIsMTAtNDIuOCwzNC00Mi44LDYyLjRjMCwzNi40LDI5LjYsNjYuNCw2Ni40LDY2LjRoMjM3LjIgYzM2LjQsMCw2Ni40LTI5LjYsNjYuNC02Ni40QzQzOC44LDIyNS42LDQwOS4yLDE5NiwzNzIuOCwxOTZ6Ii8+IDxwYXRoIHN0eWxlPSJmaWxsOiNGRjcwNTg7IiBkPSJNMzI1LjIsMzYyLjRsLTY2LjQsNjYuNGMtMi44LDIuOC03LjIsMi44LTEwLDBsLTY2LTY2LjRjLTQuNC00LjQtMS4yLTEyLDQuOC0xMmgxNC44IGM0LDAsNy4yLTMuMiw3LjItNy4ydi05NmMwLTQsMy4yLTcuMiw3LjItNy4yaDc0LjhjNCwwLDcuMiwzLjIsNy4yLDcuMnY5NmMwLDQsMy4yLDcuMiw3LjIsNy4yaDE0LjggQzMyNi40LDM1MC40LDMyOS42LDM1OCwzMjUuMiwzNjIuNHoiLz4gPC9zdmc+IA==);
  26. background-size: cover;
  27. width: 50px;
  28. height: 50px;
  29. margin-left: -50px;
  30. margin-top: -10px;
  31. opacity: .35;
  32. transform: scale(.65);
  33. transition: all cubic-bezier(0.18, 0.89, 0.32, 1.28) 250ms;
  34. }
  35. .hx-download-the-page:hover {
  36. color:#666;
  37. }
  38. .hx-download-the-page:hover:before {
  39. opacity:1;
  40. transform: scale(.7);
  41. }
  42. .hx-download-the-page:active:before {
  43. opacity:.8;
  44. transform: scale(.6) rotateZ(360deg);
  45. }
  46. </style>`);
  47. const openDown2 = (url, title) => {
  48. GM_download({
  49. url,
  50. name: title,
  51. headers: {
  52. Origin: '',
  53. Referer: '',
  54. },
  55. onerror(e) {
  56. console.log('onerror', e)
  57. }
  58. })
  59. }
  60. const getLastItem = arr => arr[arr.length - 1]
  61. const downloadfn = () => {
  62. document.querySelectorAll('#bookIFlist li').forEach(x => {
  63. const url = x.querySelector('a').href
  64. const title = x.querySelector('h2').innerText + '_' + getLastItem(url.split('/'))
  65. openDown2(url, title)
  66. })
  67. }
  68. const downloadpage = () => {
  69. if (!JSON.parse(window.localStorage.hxconfirmed || 'false')) {
  70. if (window.confirm('点击 确认 之后会创建多个下载请求,请将浏览器设置的【每次询问文件保存位置 】关掉')) {
  71. window.localStorage.hxconfirmed = true
  72. downloadfn()
  73. }
  74. } else {
  75. downloadfn()
  76. }
  77. }
  78. const downEL = document.createElement('span')
  79. let length = '统计中…'
  80. downEL.innerText = '下载本页 ' + length
  81. setTimeout(_ => {
  82. downEL.innerText = '下载本页 ' + document.querySelectorAll('#bookIFlist li').length
  83. }, 1500)
  84. downEL.className = 'hx-download-the-page'
  85. downEL.addEventListener('click', downloadpage)
  86. document.querySelector('.instit h1').parentElement.insertAdjacentElement('beforeend', downEL)
  87. // Your code here...
  88. })();