Greasy Fork

Greasy Fork is available in English.

动漫花园批量下载_改

为动漫花园(share.dmhy.org)增加批量下载的功能

当前为 2024-08-02 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         动漫花园批量下载_改
// @namespace    http://tampermonkey.net/
// @version      0.6
// @description  为动漫花园(share.dmhy.org)增加批量下载的功能
// @author       MD1304
// @match        *://share.dmhy.org/*
// @icon         data:image/x-icon;base64,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
// @grant        GM_setClipboard
// @license      LGPLv3
// @require     https://share.dmhy.org/js/jquery-1.11.1.min.js
// ==/UserScript==

(function() {
    //调整表格列
    var node = document.querySelector("#topic_list > thead > tr");
    node.children[2].insertAdjacentHTML('beforebegin', node.children[3].outerHTML);
    node.children[2].querySelector('[class="title"]').innerHTML = "";
    for (let i = 1; i < $('#topic_list tr').length; i++) {
        node = document.querySelector("#topic_list > tbody > tr:nth-child("+String(i)+")");
        node.getElementsByClassName("title")[0].insertAdjacentHTML('beforebegin', node.children[3].outerHTML);
        node.children[2].children[0].title ="复制链接";
        node.children[2].removeChild(node.children[2].querySelector('[class="download-pp"]'));
    }
    //调整表格列宽度
    document.querySelector("#topic_list > thead > tr > th:nth-child(2)").width = "4%";
    document.querySelector("#topic_list > thead > tr > th:nth-child(3)").width = "3%";
    document.querySelector("#topic_list > thead > tr > th:nth-child(5)").width = "2%";
    document.querySelector("#topic_list > thead > tr > th:nth-child(6)").width = "4%";
    document.querySelector("#topic_list > thead > tr > th:nth-child(7)").width = "2%";
    document.querySelector("#topic_list > thead > tr > th:nth-child(8)").width = "2%";
    document.querySelector("#topic_list > thead > tr > th:nth-child(9)").width = "2%";
    document.querySelector("#topic_list > thead > tr > th:nth-child(10)").width = "7%";
})();

function dmhy() {
    var that = this;
    this.init = function () {
        //复选框
        var tds = $('#topic_list tr td:nth-child(3)');
        console.log($('#topic_list tr td:nth-child(3)'));
        tds.append('<input type="checkbox" class="magnet"/>');
        $('.magnet:checkbox').click(function () {
            that.strMagnet();
            console.log("已选中 "+that.gatherMagnet().length+" 项");
        });
        //复制所选
        $('.nav_title:eq(1) .fl,.nav_title:eq(2)').append('<a class="download-all" style="color:yellow;margin-left: 24px;"><i class="download-arrow arrow-magnet" style="margin-right: 4px;"title="复制所选"></i>复制所选链接至剪贴板</a>');
        $('#topic_list thead tr th:nth-child(3) span').append('<a class="download-all" style="color:yellow;"><i class="download-arrow arrow-magnet" title="复制所选">&nbsp;</i></a>');
        $('.download-all').click(function (e) {
            e.preventDefault();
            if (that.gatherMagnet().length == 0) {
                toast("未选中任何条目");
                return;
            }
            GM_setClipboard(that.strMagnet()+"\r\n");
            console.log("已复制 "+that.gatherMagnet().length+" 项");
            toast("已复制 "+that.gatherMagnet().length+" 项 选中条目链接");
        });
        //全选
        $('#topic_list thead tr th:nth-child(3) span').append('<input class="select-all" type="checkbox" style="margin-left: 3px;" title="全选"></a>');
        $('.select-all').click(function () {
            if ($('.magnet:checkbox').length !== $('.magnet:checkbox:checked').length) {
                $('.magnet:checkbox').attr('checked', true);
            } else {
                $('.magnet:checkbox').attr('checked', false);
            }
            that.strMagnet();
            console.log("已选中 "+that.gatherMagnet().length+" 项");
        });
        //复制当前
        $('td:nth-child(3) > a.download-arrow.arrow-magnet').click(function (f) {
            f.preventDefault();
            GM_setClipboard(this.getAttribute("href")+"\r\n");
            console.log("已复制 当前 项");
            toast("已复制当前条目链接");
        });
    };
    //收集磁力链接
    this.gatherMagnet = function () {
        var magnets = [];
        $('input.magnet:checkbox:checked').each(function () {
            var magnetStr = $(this).parents('tr').find('a.download-arrow.arrow-magnet').attr('href');
            magnets.push(magnetStr);
        });
        return magnets;
    };
    //格式化磁力链接字符串
    this.strMagnet = function () {
        var str = this.gatherMagnet().join('\r\n');
        $('.download-all').attr('href', str);
        return str;
    };
    //弹出提示框
    function toast(msg) {
        var toastSpan = document.createElement("span");
        toastSpan.style.top = "45%";
        toastSpan.style.left = "50%";
        toastSpan.style.color = "#fff";
        toastSpan.style.position = "fixed";
        toastSpan.style.borderRadius = "4px"
        toastSpan.style.padding = "8px 16px"
        toastSpan.style.background = "rgba(0,0,0,0.6)";
        toastSpan.style.transform = "translate(-50%, -50%)";
        toastSpan.innerText = msg;
        document.body.appendChild(toastSpan);
        setTimeout(function () {
            toastSpan.remove(toastSpan);
        }, 1800);
    }
}
new dmhy().init();