DMHY多选/一键全选/反选磁力链接

DMHY多选/一键全选/反选磁力链接并复制到剪贴板以便到qBittorrent一键下载

  1. // ==UserScript==
  2. // @name DMHY Multiselector
  3. // @name:zh-TW DMHY多選/一鍵全選/反選磁力鏈接
  4. // @name:zh-CN DMHY多选/一键全选/反选磁力链接
  5. // @namespace http://tampermonkey.net/
  6. // @version 0.2
  7. // @license MIT
  8. // @description DMHY Multiselect and copy magnet-links to clipboard
  9. // @description:zh-tw DMHY多選/一鍵全選/反選磁力鏈接並複製到剪貼板以便到qBittorrent一鍵下載
  10. // @description:zh-CN DMHY多选/一键全选/反选磁力链接并复制到剪贴板以便到qBittorrent一键下载
  11. // @author Kai
  12. // @match *://share.dmhy.org/*
  13. // @icon https://share.dmhy.org/favicon.ico
  14. // @grant none
  15. // ==/UserScript==
  16.  
  17. (function() {
  18. 'use strict';
  19.  
  20. const extract = () => {
  21. let checked = document.querySelectorAll("input.dl-cb:checked")
  22. const arrows = document.querySelectorAll("a.download-arrow, a.arrow-magnet")
  23. console.log("Extracted.");
  24. let res = "";
  25. for (let i = 0; i < checked.length; i++){
  26. res += arrows[+checked[i].name].href + "\n"
  27. }
  28. navigator.clipboard.writeText(res);
  29. };
  30.  
  31. const toggleCB = () => {
  32. const CB = document.querySelectorAll(".dl-cb")
  33. for ( let i = 0; i < CB.length; i++) {
  34. CB[i].click();
  35. }
  36. }
  37.  
  38. const arrows = document.querySelectorAll("a.download-arrow, a.arrow-magnet")
  39. const title = document.querySelectorAll("span.title")[3];
  40.  
  41. const copy_btn = document.createElement("button");
  42. copy_btn.innerHTML = "EXT";
  43. copy_btn.addEventListener("click", extract);
  44. const selectAll_CB = document.createElement("input");
  45. selectAll_CB.type = "checkbox";
  46. selectAll_CB.name = "all";
  47. selectAll_CB.addEventListener("click",toggleCB);
  48.  
  49. title.before(selectAll_CB);
  50. title.style.marginLeft = "1rem";
  51. title.after(copy_btn);
  52. copy_btn.style.display = "block";
  53. copy_btn.style.margin = ".2rem auto";
  54. copy_btn.style.padding = "0 1rem";
  55.  
  56. console.log(
  57. "title", title.innerHTML, "\n",
  58. );
  59.  
  60. for (let i = 0; i < arrows.length; i++){
  61. let box = document.createElement("input");
  62. box.type = "checkbox";
  63. box.className = "dl-cb"
  64. box.name = i;
  65.  
  66. arrows[i].before(box);
  67. arrows[i].style.marginLeft = "1rem";
  68. }
  69.  
  70. console.log("DONE.");
  71.  
  72.  
  73. })();

QingJ © 2025

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