Greasy Fork

Greasy Fork is available in English.

动漫花园增强

dmhy.org 动漫花园增强。当前提供磁力链接dn属性修改为资源标题的功能

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         动漫花园增强
// @namespace    http://greasyfork.icu/users/390742
// @version      1.0.5
// @description  dmhy.org 动漫花园增强。当前提供磁力链接dn属性修改为资源标题的功能
// @author       fjqingyou
// @match        *://dmhy.org/*
// @require      http://greasyfork.icu/scripts/402991-url-editor/code/Url-Editor.js?version=803587
// @run-at       document-start
// @grant        none
// ==/UserScript==

(function(UrlEditor) {
    'use strict';


    // Your code here...

    function $id(id){
        return document.getElementById(id);
    }

    /**
     * 添加磁力链接的显示名称
     */
    function addMagnetDisplayName(magnetDom, displayName){
        if(magnetDom && displayName && displayName.length > 0){//执行的前置环境
            var url = magnetDom.href;
            var dn = UrlEditor.getUrlParam(url, "dn");
            if(!dn){//如果不存在这个参数
                magnetDom.href = UrlEditor.setUrlParam(url, 'dn', encodeURIComponent(displayName));
            }
        }
    }


    /**
     * 增强 show 页面
     */
    function onTopicsView(){
        //显示名称来自标题
        var displayName = document.title;
        for(var i = 0 ; i < 2; i++){
            var index = displayName.lastIndexOf(" - ");
            if(index > -1){
                displayName = displayName.substring(0, index);
            }
        }

        var magnetDownloadDomList = [
            $id("a_magnet"),
            $id("magnet2")
        ];

        for(var j = 0; j < magnetDownloadDomList.length; j++){
            var magnetDom = magnetDownloadDomList[j];
            if(!magnetDom){//如果这个还未准备就绪
                //延迟一会儿再尝试
                setTimeout(onTopicsView, 100);
                break;
            }else{
                //添加磁力链接的显示名称
                addMagnetDisplayName(magnetDom, displayName);

            }
        }

        //截图显示尺寸
        resetViewImageSize();
    }

    /**
     * 增强 list 页面
     */
    function onTopicsList(){
        var magnetDownloadDomList = document.getElementsByClassName("download-arrow");
        for(var i = 0; i < magnetDownloadDomList.length; i++){
            var magnetDom = magnetDownloadDomList[i];
            if(magnetDom){
                //获取 title 的 dom 节点
                var titleDom = magnetDom.parentElement.parentElement.getElementsByClassName("title")[0];
                var linkList = titleDom.querySelectorAll("a");
                var aDom = linkList[linkList.length - 1];
                if(aDom){
                    var displayName = aDom.innerText;

                    //添加磁力链接的显示名称
                    addMagnetDisplayName(magnetDom, displayName);
                }
            }
        }
        if(document.getElementsByClassName("footer").length < 1){//如果页面还未全部加载完毕
            setTimeout(onTopicsList, 100);//稍后重新尝试
        }
    }

    /**
    * show 页面重置图片尺寸
    */
    function resetViewImageSize(){
        var topic_nfos = document.getElementsByClassName("topic-nfo");
        for(var i = 0; i < topic_nfos.length; i++){
            var topic_nfo = topic_nfos[i];
            var imgs = topic_nfo.getElementsByTagName("img")
            for(var j = 0; j < imgs.length; j++){
                var img = imgs[j];
                img.style.width = "100%";
            }
        }
    }

    /**
     * 初始化
     */
    function init(){
        var uri = document.location.pathname;
        if(uri === "/" || uri.indexOf("/topics/list") > -1){
            onTopicsList();
        }else if(uri.indexOf("/topics/view/") > -1){
            onTopicsView();
        }
    }

    //执行初始化
    init();
})(UrlEditor);