您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
增加页面顶部底部按钮和一键下种按钮
当前为
// ==UserScript== // @name javdb auto open // @namespace websiteEnhancement // @author jimmly // @version 2023.9.22 // @description 增加页面顶部底部按钮和一键下种按钮 // @create 2023-9-21 // @include *javdb* // @grant GM_getValue // @grant GM_setValue // @grant GM.getValue // @grant GM.setValue // @require https://openuserjs.org/src/libs/sizzle/GM_config.min.js // @license MIT // @run-at document-idle // ==/UserScript== /** * @typedef { import('jquery') } $ * @typedef { import('jQuery') } jQuery */; ; (async function (withJQuery, addStyle, createSuperLabel) { let conf = new GM_config({ id: 'GM_config_javdb', title: 'javdb Configurable Options Script', fields: { 'asdf': { 'label': 'Search keys', 'type': 'textarea', 'default': '萝莉;奴隶;奴隸;调教;調教;拘束;軟體;软体;痙;攣;拘;束;固定;sm;白虎,捆绑,捆綁;束縛;束缚,母狗;' }, }, }) withJQuery(/** @param { $ } $ */function ($, win) { //$('item a').removeAttr('style') new Promise((resolve, reject) => resolve(conf.get('asdf'))) .then(conf => { console.log('config value of keys', conf) return conf.split(/;|;|,|,/i) }) .then(keys => { if (window.location.href.indexOf('tags') > -1) $('.item a').each((i, element) => { let el = $(element) $.each(keys, (inex, key) => { if (key && el.attr('title').toLowerCase().indexOf(key.toLowerCase()) > -1) { console.log(key, createSuperLabel(el.prop('href')), el.prop('href')) return false; } }) }); }) let w = 40, h = 40; addStyle(` a:link{color:green;} a:hover{color:red;} a:active{color:yellow;} a:visited{color:orange;} .btn1 { opacity:0.8;-moz-transition-duration:0.2s;-webkit-transition-duration:0.2s; padding:1px; margin-top:1px; font-size: 10; text-align: center; vertical-align: middle; line-height:${h}px; border-radius:5px 5px 5px 5px;cursor:pointer; left:0px;z-index:9999; background:white; width:${w}px;height:${h}px; } `); let container = $(document.createElement('div')).css({ 'cssText': `position:fixed;top:15%;width:${w}px;height:${h * 7}px;left:0px;z-index:9999` }); if (window.location.href.indexOf('tags') == -1) { //下载按钮 let downloadBtn = $(document.createElement('div')).text('下載').appendTo(container) .click(function () { let url = $(".t_attachlist > dt > a:eq(1)").prop('href'); let filename = $("div.mainbox.viewthread>h1").text().trim() + '.torrent'; console.log(filename) $.ajax({ url, success: function (result, status, xhr) { let alink = document.createElement('a'); alink.download = filename; alink.href = $(result).find("#downloadBtn").prop('href'); document.body.appendChild(alink); alink.click(); }, error: function (xhr, status, error) { console.log(status, error) } }); }); $(document).keydown(function (event) { let e = event || window.event; let k = e.keyCode || e.which; if (k === 16) { // isCtrl = true; startBtn.click() } else if (k === 38) { //up event.stopPropagation() slowBtn.click() } else if (k === 40) {//down event.stopPropagation() //fastBtn.click() } }) win.__wait = 900 win.__step = 100; win.___func = function () { win.______h = $(document).scrollTop() + win.__step; if (win.______h >= $(document).height() - $(window).height()) { clearTimeout(win.___t) // win.___t = setTimeout(win.___func, 30000) } else { $(document).scrollTop(win.______h); win.___t = setTimeout(win.___func, win.__wait) } }; } else { $('tr').hover( function () { $(this).find('*').css("background-color", "#9AAAC7") }, function () { $(this).find('*').css("background-color", ''); }); } //最顶按钮 let toTopBtn = $(document.createElement('div')).text('Top').appendTo(container) .click(function () { window.scrollTo(0, 0); }), //最低按钮 toBottomBtn = $(document.createElement('div')).text('Bottom').appendTo(container) .click(function () { window.scrollTo(0, document.body.scrollHeight); }), //加速 fastBtn = $(document.createElement('div')).text('加速').appendTo(container) .click(function () { if (win.__wait > 5) { win.__wait = win.__wait / 1.5 } else { win.__wait = 5 } }), startBtn = $(document.createElement('div')).text('啓停').appendTo(container) .click(function () { if (!!!win.___t) { win.___func(); } else { clearTimeout(win.___t) win.___t = 0 } }), slowBtn = $(document.createElement('div')).text('減速').appendTo(container) .click(function () { win.__wait *= 1.5 }), setBtn = $(document.createElement('div')).text('設置').appendTo(container) .click(function () { conf.open(); }); container .find('div') .addClass('btn1') .hover(function (e) { let o = $(this) o.data('old_opacity', o.css('opacity')) .data('old_border', o.css('border')) o.css('opacity', 1).css('border', '1px solid black') }, function (e) { let o = $(this) o.css('opacity', o.data('old_opacity')).css('border', o.data('old_border')) }) container.appendTo('body'); }) })(function (callback, safe) { if (typeof jQuery == "undefined") { let script = document.createElement("script") script.type = "text/javascript" script.src = "https://code.jquery.com/jquery-3.6.1.min.js" if (safe) { let cb = document.createElement("script") cb.type = "text/javascript" cb.textContent = "jQuery.noConflict();(" + callback.toString() + ")(jQuery, window);" script.addEventListener("load", function () { document.head.appendChild(cb) }) } else { let dollar = undefined if (typeof $ != "undefined") dollar = $ script.addEventListener("load", function () { jQuery.noConflict() $ = dollar callback(jQuery, window) }) } document.head.appendChild(script) } else { setTimeout(function () { //Firefox supports callback(jQuery, typeof unsafeWindow === "undefined" ? window : unsafeWindow) }, 30) } }, //addStyle function (css) { var s = document.createElement('style'); s.appendChild(document.createTextNode(css)); document.getElementsByTagName('head')[0].appendChild(s); }, //createSuperLabel 创建超链接,不会被拦截 function (url, id) { id = `_tmpAId_${id ?? url}` // 防止反复添加 if (!document.getElementById(id) && !localStorage[id]) { let tmpLink = document.createElement("a"); localStorage[id] = true tmpLink.setAttribute("href", url); tmpLink.setAttribute("target", "_blank"); tmpLink.setAttribute("id", id); document.body.appendChild(tmpLink); tmpLink.click(); return true } return false; } );