SIS TXT

下载sis小说内容

Versão de: 13/05/2020. Veja: a última versão.

// ==UserScript==
// @name         SIS TXT
// @name:zh-CN   SIS小说下载
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  下载sis小说内容
// @author       少阳
// @match        http*://*.sis001.com/forum/thread-*
// @match        http*://*.sis001.com/forum/viewthread*
// @match        http*://*sexinsex.net/bbs/thread-*

// @grant        GM_addStyle

// @require      https://cdn.jsdelivr.net/npm/[email protected]/FileSaver.min.js
// @require      http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js

// @license      MIT License  //共享规则
// @compatible        chrome
// @compatible        firefox

// @contributionURL https://www.paypal.com/  //捐赠链接
// @contributionAmount 1   // 建议捐赠金额,请配合 @contributionURL 使用。
// ==/UserScript==

// 代码开始
var $ = $ || window.$;
'use strict';
var test = ""; //调试开关,1为打开调试

GM_addStyle(`

.button{
  position: fixed;
  bottom: 200px;
  right: 50px;
}

.button2 {
	text-align : center;
    border-style : none;
	cursor : hand;
    font-weight : bold;
	width : 50px;
	height : 50px;
    border-radius:15px;

}

`);

(function () {

  console.log('脚本启动');

  /*按钮*/
  var downloadButton = document.createElement("div");
  downloadButton.className = "button"; //class名称,必须有,包含层级设置
  downloadButton.innerHTML = "<button  class='button2'>下载TXT</button>"; //添加的网页样式
  document.getElementsByTagName("body")[0].appendChild(downloadButton);
  //点击事件
  downloadButton.addEventListener("click", function () { //点击事件
    get();
  })
  /*按钮*/

  //$('h1').prepend('<button id="btn2">按钮</button>'); //修改按钮

})();

function get() {

  console.log('获取模块启动');

  var name = $(".postmessage.defaultpost h2").text(); //获取文章名

  //获取内容
  var url = window.location.href; //获取当前网址
  if (url.indexOf("sexinsex") >= 0) { //根据网址选择匹配规则
    var str = $(".t_msgfont:first .t_msgfont font");
  } else {
    var str = $(".t_msgfont:first .t_msgfont");
  }

  var a = str
    .clone() //复制元素
    .children("table,strong,p") // 获取子元素
    .remove() //删除获取的子元素
    .end() //回到选择的元素
    .text() //获取文本值
    ;


  var b = a.replace(/[\r\n](?!([\r\n]))/g, "");
  var c = b.replace(/[\r\n]/g, "\r\n"); //替换LF换行为\r\n
  //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");
  var d = c.replace(/(作者.+?(?=\d{4}[年|\/]))(.*?)(字数.*)([\r\n])/g, "$1\r\n$2\r\n$3$4"); //把作者相关资料换行。(暂时还没想到更好的办法)

  if (test != 1) {
    //调用下载
    saveShareContent(name + ".txt", d);
  } else {
    //文本内容测试
    console.log(d);
  }

}

function saveShareContent(Name, data) {
  console.log('下载模块启动');
  let downLink = document.createElement('a')
  downLink.download = Name
  //字符内容转换为blod地址
  let blob = new Blob([data])
  downLink.href = URL.createObjectURL(blob)
  // 链接插入到页面
  document.body.appendChild(downLink)
  downLink.click()
  // 移除下载链接
  document.body.removeChild(downLink)
}