您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
abooky添加标题到优书网的跳转按钮
当前为
// ==UserScript== // @name TitleSearch // @namespace http://tampermonkey.net/ // @version 5.04 // @description abooky添加标题到优书网的跳转按钮 // @author backrock12 // @match *://www.abooky.com/* // @match *://www.yousuu.com/search* // @match *://dushuxiaozi.com/category* // @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (function () { "use strict"; var $ = $ || window.$; const urllist = [ { name: "abooky", url: /www\.abooky\.com/, titleid: ".ts", nosign: "", autojump: true, }, ]; var run_mk = false; function gettitle(t, str1, str2) { let lnum, rnum, title; lnum = t.indexOf(str1); rnum = t.indexOf(str2); if (lnum < 0) lnum = 0; if (rnum < 0) rnum = 0; if (lnum > 0 || rnum > 0) { title = t.substring(lnum + 1, rnum); } if (title) title = title.replace("[TXT格式]", "").replace("\n", ""); return title; } function addbutton(t, autojump) { if (t) { console.log(t); let title = gettitle(t, "《", "》"); if (!title) { title = gettitle(t, "<", ">"); } if (!title) { title = gettitle(t, "]", "⊙"); } console.log(title); if (title) { const re = getlog(title); console.log("re", re); let background_color = " #EEE"; let href = "http://www.yousuu.com/search/?search_type=title&search_value=" + title + "#TitleSearch"; if (re == "null") { background_color = " #EEE"; } else if (re == "false") { background_color = "#FFD700"; } else if (re) { href = re; background_color = "#87CEFA"; } let b = $("<button></button>"); b.text("优书网"); b.css({ color: "#000000", "background-color": background_color, "border-color": " #EEE", "font-weight": " 300", "font-size": " 16px", "text-decoration": " none", "text-align": " center", "line-height": " 25px", height: " 25px", padding: " 0 15px", margin: " 0", display: " inline-block", appearance: " none", cursor: " pointer", border: " none", "-webkit-box-sizing": " border-box", "-moz-box-sizing": " border-box", "box-sizing": " border-box", "-webkit-transition-property": " all", "transition-property": " all", "-webkit-transition-duration": " .3s", "transition-duration": " .3s", "border-radius": " 4px", }); b.click(function () { var content = document.createElement("a"); content.href = href; content.target = "_blank"; document.body.appendChild(content); content.click(); document.body.removeChild(content); }); if (autojump) b.click(); return b; } } } function addDownbutton(t) { if (t) { console.log(t); let title = gettitle(t, "《", "》"); if (!title) { title = gettitle(t, "<", ">"); } if (!title) { title = gettitle(t, "]", "⊙"); } console.log(title); if (title) { let b = $("<button></button>"); b.text("下载"); b.css({ color: " #666", "background-color": " #EEE", "border-color": " #EEE", "font-weight": " 300", "font-size": " 16px", "text-decoration": " none", "text-align": " center", "line-height": " 25px", height: " 25px", padding: " 0 15px", margin: " 0", display: " inline-block", appearance: " none", cursor: " pointer", border: " none", "-webkit-box-sizing": " border-box", "-moz-box-sizing": " border-box", "box-sizing": " border-box", "-webkit-transition-property": " all", "transition-property": " all", "-webkit-transition-duration": " .3s", "transition-duration": " .3s", "border-radius": " 4px", }); b.click(function () { var content = document.createElement("a"); content.href = "https://dushuxiaozi.com/wp-content/uploads/2019/book/" + title + ".zip"; content.target = "_blank"; document.body.appendChild(content); content.click(); document.body.removeChild(content); }); return b; } } } //標題跳轉按鈕 function make(obj) { if (obj.url.test(location.href)) { let t = $(obj.titleid).text(); let b = addbutton(t, obj.autojump); if (b) $(obj.titleid).after(b); } } /** * @description : 根据ID检查元素是否可见,再点击 * @param {*} cssid * @return {*} */ function loop(cssid) { function checkVisible(elm) { var rect = elm.getBoundingClientRect(); var viewHeight = Math.max( document.documentElement.clientHeight, window.innerHeight ); return !(rect.bottom < 0 || rect.top - viewHeight >= 0); } const s = document.querySelector(cssid); if (s) { let r = checkVisible(s); if (r) { s.click(); // serch(); } } } //優書網自動點擊 function autoclick() { let num = 0; const _Interval = setInterval(() => { let books = $(".list-card-layout"); if (books.length == 0) books = $(".result-item-layout"); const bookname = books.find(".book-name"); console.log(bookname); if (bookname.length == 1) { if (bookname.length == 1) { bookname[0].click(); addlog(true, bookname[0].href); clearInterval(_Interval); setTimeout(function () { window.close(); }, 200); } } else if (bookname.length > 1) { bookname.click((f) => { const surl = f.currentTarget.href; console.log("bookname.click"); addlog(true, surl); }); const BookCoverImage = books.find(".card-bookInfo-cover a"); console.log(BookCoverImage); BookCoverImage.click((f) => { const surl = f.currentTarget.href; console.log("BookCoverImage.click"); addlog(true, surl); }); clearInterval(_Interval); } else { if (window.document.body.innerText.indexOf("找不到你要的结果:-)") > 0) { addlog(false, null); clearInterval(_Interval); window.close(); } if (num > 10) { clearInterval(_Interval); window.close(); } num++; } }, 300); } function getlog(tname) { const sname = "TITLESEARCH_SETTING"; let set_obj = GM_getValue(sname, null); console.log(set_obj); if (!set_obj) { set_obj = {}; } let re; const obj = set_obj[tname]; console.log("obj", obj); if (!obj) { re = "null"; } else if (obj.found_mk == "true" && obj.url) { re = obj.url; } else if (obj.found_mk == "false") { re = "false"; } else { re = "null"; } return re; } function addlog(is_found_mk, is_url) { // const name = "value_test"; // const is_found_mk = true; // const is_url = ""; const tname = $( ".default-layout > div:nth-child(1) > header:nth-child(1) > input:nth-child(1)" ).val(); const nowdate = new Date().toLocaleString(); const sname = "TITLESEARCH_SETTING"; let set_obj = GM_getValue(sname, null); console.log(set_obj); if (!set_obj) { set_obj = {}; } const obj = set_obj[tname]; let is_count = 1; if (!obj) { is_count = 1; } else { is_count = obj.count + 1; } set_obj[tname] = { url: is_url, modi_time: nowdate, count: is_count, found_mk: is_found_mk ? "true" : "false", }; GM_setValue(sname, set_obj); console.log( "is_found_mk :" + is_found_mk + " is_url: " + is_url + " name: " + name ); } function dushuxiaozi() { var count = 0; var isok = false; function serch() { var list = document.querySelectorAll("#main h2 > a"); console.log(list); if (count != list.length && !isok) { isok = true; for (var i = 0; i < list.length; i++) { let t = $(list[i]).text(); console.log(t); if (list[i].getAttribute("titlesearch_mk") != "true") { let b = addbutton(t); let b2 = addDownbutton(t); if (b) { $(list[i]).after(b2); $(list[i]).after(b); list[i].parentNode.style.cssText = "font-size: 18px;width: 750px;"; list[i].setAttribute("titlesearch_mk", "true"); } } } isok = false; } } setInterval(() => loop(".ias-trigger-next"), 2000); serch(); document.querySelector("#main").addEventListener("DOMNodeInserted", serch); } function run() { if (location.hash && location.hash == "#TitleSearch") { setTimeout(autoclick, 1100); } else { // if (/dushuxiaozi/.test(location.href)) { // dushuxiaozi(); // } else { urllist.forEach(make); // } } //自動滾動 if (/www\.abooky\.com/.test(location.href)) { $(window).scroll(function () { var scrollTop = $(this).scrollTop(); var scrollHeight = $(document).height(); var windowHeight = $(this).height(); if (scrollTop + windowHeight >= scrollHeight - 350) { if (!run_mk) { run_mk = true; loop("#autopbn"); run_mk = false; } } }); } } run(); })();