Wizball のインセンティブ内訳を一気に読み込む Fork

  • /*
     * @title Wizball のインセンティブ内訳を一気に読み込む
     * @description Wizball のインセンティブ内訳を一気に読み込む
     * @include https://wizball.io/users/* /reward
     * @license MIT License http://opensource.org/licenses/MIT
     * @javascript_url
     */
    /*
        update 2018-11-23 histories API limits 50
    */
    (async _ => {
        if (location.hostname != "wizball.io" || ! /^\/users\/\d+\/reward/.test(location.pathname)) {
            return;
        }
        const layer = document.querySelector(".layout_wrap.my_wallet .popup .layer_wallet_reward");
        if (! layer) return;
        const date = layer.querySelector(".date_area");
        const m = /users\/(\d+)/.exec(location.pathname);
        const history = [];
        for (let i = 0, c = "" ; i < 1000 ; ++i) {
            const resp = await fetch("/apis/v1/users/" + m[1] + "/rewards/histories?size=2000&cursor=" + c + "&dateYmd=" + date.innerHTML.replace(/\./g, ""));
            const json = await resp.json();
            history.push(... json);
            c = resp.headers.get("X-WIZ-Next-Cursor");
            if (! c) {
                break;
            }
        }
        const table_o = layer.querySelector(".detail_info_area > .detail_info_table");
        const proto = table_o.firstChild.cloneNode(true);
        proto.classList.remove("withdraw");
        table_o.innerHTML = "";
        const table = table_o.cloneNode(true);
        table_o.parentNode.appendChild(table);
        table_o.remove();
        const action_label = {
            "USE": "使用",
            "DEPOSIT": "支払い",
        };
        history.forEach(r => {
            const e = proto.cloneNode(true);
            const cells = e.querySelectorAll(".item");
            cells[0].innerHTML = action_label[r.action];
            cells[3].innerHTML = r.reason;
            cells[4].innerHTML = r.preview;
            cells[5].firstChild.href = "/questions/" + r.questionId;
            if (r.action == "USE") {
                e.classList.add("withdraw");
                cells[1].innerHTML = "-" + r.varianceWc;
                cells[2].innerHTML = r.varianceWp;
            } else {
                cells[1].innerHTML = "+" + r.varianceWc;
                cells[2].innerHTML = "+" + r.varianceWp;
            }
            table.appendChild(e);
        });
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2018/11/23 02:47:49 - 11/23
  2. 2018/11/05 04:40:18 - 11/05