Greasy Fork 支持简体中文。

WoD Item Exchange

Exchange items among heroes in one view!

// ==UserScript==
// @name         WoD Item Exchange
// @namespace    https://www.wannaexpresso.com
// @version      0.3
// @description  Exchange items among heroes in one view!
// @author       DotIN13
// @include      http*://*.world-of-dungeons.org/wod/spiel/hero/items.php?*
// @include      http*://*.wannaexpresso.com/wod/spiel/hero/items.php?*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var queryData;
    var queryURL;

    window.addEventListener("load", function() {

        if ($('input[name="view"]').val() == "cellar" || $('input[name="view"]').val() == "") {
            $("input[name='ok']").parent().append("<a class='move_item button' href='#'>移动物品</a>", "<div class='move_progress'></div>");
            getSelect();
            $(".move_item").click(function() {
                $(".move_progress").html("开始移动物品。");
                var progress = 0;
                var task = 0;
                $(".send-target").each(function() {
                    if ($(this).val() != 'none')
                        task++;
                })
                $(".send-target").each(function() {
                    if ($(this).val() != 'none')
                    {
                        var target = $(this).val();
                        var params = $(this).parent().siblings().find('a').attr('href').match(/item_instance_id=(\d+)&type=\d&name=([^&]*)/);
                        var data = queryData.replace(/&id=\d+/g, "&id=" + params[1]).replace(/&name=[^&]*/, "&name=" + params[2]).replace(/&send_to=[^&]*/, "&send_to=" + target) + "&send_to_exec=√";
                        $(this).parent().parent().remove();
                        console.log(queryURL, data);
                        $.ajax({
                            type: "POST",
                            url: queryURL,
                            data: data,
                            success: function() {
                                progress++;
                                $(".move_progress").html("已移动" + progress + "/" + task + "个物品。");
                                if (progress == task) {
                                    $(".move_progress").html("已移动全部物品。");
                                }
                            }
                        })
                    }
                })
            })
        }
    });


    function getSelect() {
        $(".move_progress").html("正在获取物品移动下拉菜单...");
        var firstItemURL = null;
        $(".layout_clear .content_table a[href*='item_instance_id']").each(function() {
            firstItemURL = $(this).attr("href");
            if (!$(this).html().match("!")) {
                return false;
            }
        });
        if (firstItemURL) {
            $.ajax({
                type: "GET",
                url: firstItemURL,
            }).done(function(html){
                var fullSelect = "<select class='send-target'><option value='none'>不移动</option>" + $('select[name="send_to"] optgroup', html).first().prop("outerHTML") + $('select[name="send_to"] optgroup', html).last().prop("outerHTML") + "</select>";
                var groupSelect = "<select class='send-target'><option value='none'>不移动</option>" + $('select[name="send_to"] optgroup', html).last().prop("outerHTML") + "</select>";
                $('.layout_clear .content_table thead tr.header').add($('.layout_clear .content_table tfoot tr.header')).append("<th>移动物品<input type='checkbox' class='send-all'>" + fullSelect.replace("send-target", "send-template") + "</th>");
                $(".layout_clear .content_table a[href*='item_instance_id']").each(function(index) {
                    if ($(this).html().match("!")) {
                        $(this).parent().parent().append("<td>" + groupSelect + "<input type='checkbox' class='check-to-move'></td>");
                    } else {
                        $(this).parent().parent().append("<td>" + fullSelect + "<input type='checkbox' class='check-to-move'></td>");
                    }
                })
                queryData = $('form', html).serialize();
                queryURL = $('form', html).attr("action");
                $(".send-template").change(function() {
                    $('input.check-to-move:checked').prev().val($(this).val());
                })
                $(".send-all").change(function() {
                    $('input.check-to-move').prop("checked", $(this).prop("checked"));
                })
                $(".move_progress").html("");
            })
        } else {
            $(".move_progress").html("请至少放置一件物品在这间储藏室里。");
        }
    }
})();