SIS一键下种

增加页面顶部底部按钮和一键下种按钮

2023-07-12 기준 버전입니다. 최신 버전을 확인하세요.

// ==UserScript==
// @name         SIS一键下种
// @namespace    SIS增强脚本
// @author   jimmly
// @version      1.6.18
// @description  增加页面顶部底部按钮和一键下种按钮
// @create         2022-9-20
// @include        http://sexinsex.net/bbs/*
// @include        http://174.127.195.176/bbs/*
// @include        *sis001*
// @include        http://174.127.195.201/bbs/*
// @include        http://174.127.195.183/bbs/*
// @include        http://174.127.195.186/bbs/*
// @include        http://174.127.195.188/bbs/*
// @include        http://174.127.195.173/bbs/*
// @include        http://174.127.195.187/bbs/*
// @include        http://174.127.195.182/bbs/*
// @include        http://174.127.195.184/bbs/*
// @include        http://67.220.90.10/bbs/*
// @include        http://67.220.90.4/bbs/*
// @include        http://172.127.195.213/bbs/*
// @include        http://172.127.195.190/bbs/*
// @license MIT
// @run-at document-idle
// ==/UserScript==

/**
 * @typedef { import('jquery') } $
 * @typedef { import('jQuery') } jQuery
 */

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;}

`)
    ;
(function (withJQuery) {

    withJQuery(/**  @param { $ } $ */function ($, win) {
 
        $('a').removeAttr('style')
        let mm = `opacity:1;-moz-transition-duration:0.2s;-webkit-transition-duration:0.2s;border-radius:5px 5px 5px 5px;cursor:pointer;position:fixed;top:15%;width:40px;height:120px;left:0px;z-index:9999`;
        let container = $(document.createElement('div')).css({
            'cssText': mm
        });
        let topref = 80;
        //最顶按钮
        let aa = `opacity:0.3;-moz-transition-duration:0.2s;-webkit-transition-duration:0.2s;
                background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4RDY5NzMwMUU5NEJFMjExQjQ4NkI4QUQ0MEI3RkIzMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMDg5QzBEMjRCRUExMUUyQkJFNkZFQkYyNTMxNzEyNSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMDg5QzBEMTRCRUExMUUyQkJFNkZFQkYyNTMxNzEyNSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4RDY5NzMwMUU5NEJFMjExQjQ4NkI4QUQ0MEI3RkIzMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4RDY5NzMwMUU5NEJFMjExQjQ4NkI4QUQ0MEI3RkIzMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Poa+yUsAAABySURBVHja7NfBCkAhCETRpg/v1y2hfWmKBCO4ffdsXhFEpFVOb8VDwN8AAEP3SaB/gWfXaFj2Dvd3AuJPiKi4GxEZdyGi42ZERtyEyIpfIzLjV4js+BEB63W8Tj45HGzgZUQAAQQQ8BUAfJoRUA2YAgwAW/KKqewhSvEAAAAASUVORK5CYII=") no-repeat scroll 50% 50% rgba(0, 0, 0, 0.7);
                border-radius:5px 5px 5px 5px;cursor:pointer;position: absolute;top:${topref}px;width:40px;height:40px;left:0px;z-index:9999`;
        let a = $(document.createElement('span')).css({
            'cssText': aa
        });
        let abc = a;
        a.click(function () {
            window.scrollTo(0, 0);
        });

        container.append($(a));
        if (window.location.href.indexOf("thread") != -1) {
            //下载按钮
            let bb = `opacity:0.3;-moz-transition-duration:0.2s;-webkit-transition-duration:0.2s;
                    background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI3QzE0QkM5NEJFODExRTI5QzU0REU5NjgzMkRERUJGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI3QzE0QkNBNEJFODExRTI5QzU0REU5NjgzMkRERUJGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjdDMTRCQzc0QkU4MTFFMjlDNTRERTk2ODMyRERFQkYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjdDMTRCQzg0QkU4MTFFMjlDNTRERTk2ODMyRERFQkYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz43+dIzAAABGUlEQVR42mL8//8/w0ACJoYBBgPugFFACmAG4kAgXgrEZ4D4DxSfgYoFQtXQBKgD8Ukg/k8An4SqpSooAuJvRFgOw9+geqgCukiwGB13UWp5OAWWw3A4uZazAfETKjjgNtQskkEUFSyHYVhO6SUlgS4lwmB0QNUEeoNGDoDh7YSi5gONHfAfGiUYCS8HiA8QaQClDgClDS2YZmkgPk+iAZQ6AB4KIJ9fIkMzNRxwlQEa7P8HyAGgtMZwmAQNdUTkoDoSzPsM0vCTRFfXUclyeBT8JCPo6qhgOQhPAGk8Rmb81VFoOSgb6oI051NQzteRaTnc95RkQ0owRlEsTSdH4K2M2KDRcYAGFp8ntTqmG2Ac7RuOeAcABBgAGLrbhINPh9cAAAAASUVORK5CYII=") no-repeat scroll 50% 50% rgba(0, 0, 0, 0.7);
                    border-radius:5px 5px 5px 5px;cursor:pointer;
                    position: absolute;top:${topref + 40}px;width:40px;height:40px;left:0px;z-index:9999`;
            let b = $(document.createElement('span')).css("cssText", bb)
            b.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)
                    }
                });
            });
            abc = abc.add(b)
            container.append($(b));

        }
        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 cc = `opacity:0.3;-moz-transition-duration:0.2s;-webkit-transition-duration:0.2s;
                background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4RDY5NzMwMUU5NEJFMjExQjQ4NkI4QUQ0MEI3RkIzMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMUNEQjZCQTRCRUExMUUyOEVDN0EyM0RFNkVBQ0MzRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMUNEQjZCOTRCRUExMUUyOEVDN0EyM0RFNkVBQ0MzRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4RDY5NzMwMUU5NEJFMjExQjQ4NkI4QUQ0MEI3RkIzMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4RDY5NzMwMUU5NEJFMjExQjQ4NkI4QUQ0MEI3RkIzMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PglexFoAAACVSURBVHja7JfRCsAgCEVz9N/jfrmzlz2MZmoDYSgIQd7bgcSImLllxtGSowDSAbpXQERq10pTU11BARRAARTAPwBk5mPM/Wda3opJQns8XlNiCHkzoZ6hbX4AgaX/qmADAiZvS1EAAmZfa6EDAi5PT7EBAm4/r0CBQMgrIppAIOrToxNMxKcMmHsd9aH6mhVANsAlwADuz2Iyd6ydewAAAABJRU5ErkJggg==") no-repeat scroll 50% 50% rgba(0, 0, 0, 0.7);
                border-radius:5px 5px 5px 5px;cursor:pointer;position: absolute;top:${topref + 80}px;width:40px;height:40px;left:0px;z-index:9999`;
        let c = $(document.createElement('span')).css('cssText', cc);
        abc.add(c)
            .hover(
                function (item) {
                    $(this).css('opacity', 1)
                }, function (item) {
                    $(this).css('opacity', 0.3)
                });
        c.click(function () {
            window.scrollTo(0, document.body.scrollHeight);
        });
        container.append($(c));



        win.__wait = 20;
        let fast = $(document.createElement('button')).text('[+]').attr('id', '_fbtn'),
            middle = $(document.createElement('button')).text('[||]').attr('id', '_mbtn'),
            slow = $(document.createElement('button')).text('[-]').attr('id', '_sbtn');
        container.append(fast).append($('<br />'))
            .append(middle).append($('<br />'))
            .append(slow).append($('<br />'))

        win.__wait = 900
        win.__step = 100;

        fast.click(function () {
            if (win.__wait > 5) {
                win.__wait = win.__wait / 1.5
            } else {
                win.__wait = 5
            }

        });
        slow.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;
                $('#_mbtn').click()
            } else if (k === 38) {  //up
                event.stopPropagation()
                $('#_sbtn').click()

            } else if (k === 40) {//down
                event.stopPropagation()
                $('#_fbtn').click()
            }
        })
        $().add(fast).add(middle).add(slow)
            .width(35)
            .css({
                'font-size': 10, 'font-background': 'gray', 'padding': '1px',
                'text-align': 'center', 'vertical-align': 'middle', 'margin': '2px',
                'opacity': '0.9', 'background': 'white'
            }).hover(
                function (item) {
                    $(this).css('border', '1px solid black')
                }, function (item) {
                    $(this).css('border', 'none')
                });


        middle.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)
    }
});