您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
增加页面顶部底部按钮和一键下种按钮
当前为
// ==UserScript== // @name javdb auto open // @namespace javdb enhancement // @author jimmly // @version 0.3.3 // @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 withJQuery => { let conf = new GM_config({ id: 'GM_config_javdb', title: 'Configurable Options Script', fields: { 'asdf': { 'label': 'Search keys', 'type': 'textarea', 'default': '萝莉;奴隶;奴隸;调教;調教;拘束;軟體;软体;痙;攣;拘;束;固定;sm;白虎,捆绑,捆綁;束縛;束缚,母狗;' }, }, }) var addStyle = function (css) { var s = document.createElement('style'); s.appendChild(document.createTextNode(css)); document.getElementsByTagName('head')[0].appendChild(s); } addStyle(` a:link{color:green;} a:hover{color:red;} a:active{color:yellow;} a:visited{color:orange;} .btn1 { opacity:0.3;-moz-transition-duration:0.2s;-webkit-transition-duration:0.2s; padding:1px;background:white;font-size: 10; text-align: center; vertical-align: middle; border-radius:5px 5px 5px 5px;cursor:pointer; left:0px;z-index:9999; background:white; width:40px;height:40px;line-height:40px; } `); // 创建超链接,不会被拦截 function createSuperLabel(url, id) { if (!id) 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; } 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.toString()).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 container = $(document.createElement('div')).css({ 'cssText': `position:fixed;top:15%;width:40px;height:240px;left:0px;z-index:9999` }); let topref = 80; //最顶按钮 let toTopBtn = $(document.createElement('div')).text('Top'); toTopBtn.click(function () { window.scrollTo(0, 0); }); container.append(toTopBtn).append($('<br />')); if (window.location.href.indexOf("thread") == -1) { //下载按钮 let downloadBtn = $(document.createElement('div')).text('Lod'); downloadBtn.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) } }); }); container.append(downloadBtn).append($('<br />')); } else { $('tr').hover(function () { // $(this).find('*').each(function (item) { // $(this).data('oldcolor', $(this).css("background-color")) // }) $(this).find('*').css("background-color", "#9AAAC7") }, function () { $(this).find('*').css("background-color", ''); }); } //最低按钮 let toBottomBtn = $(document.createElement('div')).text('Bot');; toBottomBtn.click(function () { window.scrollTo(0, document.body.scrollHeight); }); container.append(toBottomBtn).append($('<br />')); let fastBtn = $(document.createElement('div')).text('Set'), middleBtn = $(document.createElement('div')).text('Sta'), slowBtn = $(document.createElement('div')).text('Low'); container.append(fastBtn).append($('<br />')) .append(middleBtn).append($('<br />')) .append(slowBtn).append($('<br />')) container.find('div') .addClass('btn1') .hover( function (item) { $(this).css('opacity', 1).css('border', '1px solid black') }, function (item) { $(this).css('opacity', 0.3).css('border', 'none') }) win.__wait = 900 win.__step = 100; fastBtn.click(function () { conf.open(); // if (win.__wait > 5) { // win.__wait = win.__wait / 1.5 // } else { // win.__wait = 5 // } }); slowBtn.click(function () { win.__wait *= 1.5 }); 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) } }; $(document).keydown(function (event) { let e = event || window.event; let k = e.keyCode || e.which; if (k === 16) { // isCtrl = true; middleBtn.click() } else if (k === 38) { //up event.stopPropagation() slowBtn.click() } else if (k === 40) {//down event.stopPropagation() //fastBtn.click() } }) middleBtn.click(function () { if (!!!win.___t) { win.___func(); } else { clearTimeout(win.___t) win.___t = 0 } }) container.appendTo('body'); $(window).blur(function () { clearTimeout(win.___t) win.___t = 0 }).focus(function () { win.___func(); }) }) })(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) } });