SIS TXT

下载sis小说内容

2020/05/13のページです。最新版はこちら。

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
  1. // ==UserScript==
  2. // @name SIS TXT
  3. // @name:zh-CN SIS小说下载
  4. // @namespace http://tampermonkey.net/
  5. // @version 1.0
  6. // @description 下载sis小说内容
  7. // @author 少阳
  8. // @match http*://*.sis001.com/forum/thread-*
  9. // @match http*://*.sis001.com/forum/viewthread*
  10. // @match http*://*sexinsex.net/bbs/thread-*
  11.  
  12. // @grant GM_addStyle
  13.  
  14. // @require https://cdn.jsdelivr.net/npm/file-saver@1.3.8/FileSaver.min.js
  15. // @require http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js
  16.  
  17. // @license MIT License //共享规则
  18. // @compatible chrome
  19. // @compatible firefox
  20.  
  21. // @contributionURL https://www.paypal.com/ //捐赠链接
  22. // @contributionAmount 1 // 建议捐赠金额,请配合 @contributionURL 使用。
  23. // ==/UserScript==
  24.  
  25. // 代码开始
  26. var $ = $ || window.$;
  27. 'use strict';
  28. var test = ""; //调试开关,1为打开调试
  29.  
  30. GM_addStyle(`
  31.  
  32. .button{
  33. position: fixed;
  34. bottom: 200px;
  35. right: 50px;
  36. }
  37.  
  38. .button2 {
  39. text-align : center;
  40. border-style : none;
  41. cursor : hand;
  42. font-weight : bold;
  43. width : 50px;
  44. height : 50px;
  45. border-radius:15px;
  46.  
  47. }
  48.  
  49. `);
  50.  
  51. (function () {
  52.  
  53. console.log('脚本启动');
  54.  
  55. /*按钮*/
  56. var downloadButton = document.createElement("div");
  57. downloadButton.className = "button"; //class名称,必须有,包含层级设置
  58. downloadButton.innerHTML = "<button class='button2'>下载TXT</button>"; //添加的网页样式
  59. document.getElementsByTagName("body")[0].appendChild(downloadButton);
  60. //点击事件
  61. downloadButton.addEventListener("click", function () { //点击事件
  62. get();
  63. })
  64. /*按钮*/
  65.  
  66. //$('h1').prepend('<button id="btn2">按钮</button>'); //修改按钮
  67.  
  68. })();
  69.  
  70. function get() {
  71.  
  72. console.log('获取模块启动');
  73.  
  74. var name = $(".postmessage.defaultpost h2").text(); //获取文章名
  75.  
  76. //获取内容
  77. var url = window.location.href; //获取当前网址
  78. if (url.indexOf("sexinsex") >= 0) { //根据网址选择匹配规则
  79. var str = $(".t_msgfont:first .t_msgfont font");
  80. } else {
  81. var str = $(".t_msgfont:first .t_msgfont");
  82. }
  83.  
  84. var a = str
  85. .clone() //复制元素
  86. .children("table,strong,p") // 获取子元素
  87. .remove() //删除获取的子元素
  88. .end() //回到选择的元素
  89. .text() //获取文本值
  90. ;
  91.  
  92.  
  93. var b = a.replace(/[\r\n](?!([\r\n]))/g, "");
  94. var c = b.replace(/[\r\n]/g, "\r\n"); //替换LF换行为\r\n
  95. //var d = b.replace(/(作者.+?)(\d{4}[年|\/]\d*[月|\/]\d*[日|\/].*?)?(是否.*?)?(首发网站.*?)?(字数.*?)([\r\n])/g,"$1\r\n$2\r\n$3\r\n$4\r\n$5$6");
  96. var d = c.replace(/(作者.+?(?=\d{4}[年|\/]))(.*?)(字数.*)([\r\n])/g, "$1\r\n$2\r\n$3$4"); //把作者相关资料换行。(暂时还没想到更好的办法)
  97.  
  98. if (test != 1) {
  99. //调用下载
  100. saveShareContent(name + ".txt", d);
  101. } else {
  102. //文本内容测试
  103. console.log(d);
  104. }
  105.  
  106. }
  107.  
  108. function saveShareContent(Name, data) {
  109. console.log('下载模块启动');
  110. let downLink = document.createElement('a')
  111. downLink.download = Name
  112. //字符内容转换为blod地址
  113. let blob = new Blob([data])
  114. downLink.href = URL.createObjectURL(blob)
  115. // 链接插入到页面
  116. document.body.appendChild(downLink)
  117. downLink.click()
  118. // 移除下载链接
  119. document.body.removeChild(downLink)
  120. }
  121.  
  122.