Greasy Fork镜像 还支持 简体中文。

Torn Set Calculator

Calculates prices of plushie and flower sets

目前為 2015-07-31 提交的版本,檢視 最新版本

// ==UserScript==
// @name Torn Set Calculator
// @version 0.1
// @namespace   mrhat.tornSetCalculator
// @description Calculates prices of plushie and flower sets
// @author MrHat
// @require http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js
// @require http://cdnjs.cloudflare.com/ajax/libs/accounting.js/0.4.1/accounting.min.js
// @match http://www.torn.com/imarket.php*
// @match https://www.torn.com/imarket.php*
// ==/UserScript==

// Intercept ajax requests related to the item market
(function(XHR) {
    "use strict";

    var open = XHR.prototype.open;
    var send = XHR.prototype.send;

    XHR.prototype.open = function(method, url, async, user, pass) {
        this._url = url;
        open.call(this, method, url, async, user, pass);
    };

    XHR.prototype.send = function(data) {
        var self = this;
        var url = this._url;

        // Function is invoked when a response was received from the item market
        function onReadyStateChange() {
            if(self.readyState == 4 /* complete */) {

                // Process the items and their pricess
                var items = JSON.parse(this.response);
                itemsLoaded(items);
            }
        }
        
        function itemsLoaded(items) {
            // List item ids of sets
            var itemSets = {
                plushies: ["186", "215", "187", "261", "618", "258", "273", "269", "266", "268", "281", "274", "384"],
                flowers: ["260", "617", "263", "272", "264", "271", "267", "277", "282", "276", "385"]
            };
            
            // Create an array with all items ids we are interested in
            var sets = itemSets.plushies.concat(itemSets.flowers);

            // Loop through response items and calculate the sum of all relevant items
            var sum = 0;
            items.forEach(function(item) {
                if ($.inArray(item.itemID, sets) !== -1) {
                    sum += parseInt(item.price);
                }
            });

            // Calculate price of individual points
            var individualPoint = sum / 10;

            // Show results on page (attempt to find container, if it's not there we create it)
            var container = $('#setCalculator');
            if (!container.length) {
                container = $('<div>').attr('id', 'setCalculator').addClass('msg right-round');
                
                var wrapper = $('<div>').addClass('info-msg border-round').html($('<i>').addClass('info-icon'));
                wrapper.append(container);
                wrapper.prependTo($('.main-market-page'));
            }
            
            // Clear text
            container.empty();
            
            // Only show results if we have something to show
            if (sum > 0) {
                var msg = $('<span>').html('1 complete set costs <b>' + accounting.formatMoney(sum, "$", 0) + '</b>. This equals to <b>' + accounting.formatMoney(individualPoint, "$", 0) + '</b> per point.');
                container.append(msg);
            } else {
                var msg = $('<span>').html('No sets available.');
                container.append(msg);
            }
        }
        
        // We only intercept requests for the item market
        var marketRegex = /^imarket.php\?rfcv=(\d+)$/;
        if (marketRegex.test(url)) {
            this.addEventListener("readystatechange", onReadyStateChange, false);
        }

        send.call(this, data);
    }
})(XMLHttpRequest);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址