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

    @@ -5,6 +5,9 @@ * @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;
    @@ -13,8 +16,16 @@ if (! layer) return; const date = layer.querySelector(".date_area"); const m = /users\/(\d+)/.exec(location.pathname); - const resp = await fetch("/apis/v1/users/" + m[1] + "/rewards/histories?size=2000&cursor=&dateYmd=" + date.innerHTML.replace(/\./g, "")); - const json = await resp.json(); + 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");
    @@ -26,7 +37,7 @@ "USE": "使用", "DEPOSIT": "支払い", }; - json.forEach(r => { + history.forEach(r => { const e = proto.cloneNode(true); const cells = e.querySelectorAll(".item"); cells[0].innerHTML = action_label[r.action];
    @@ -44,4 +55,3 @@ table.appendChild(e); }); })(); -
  • /*
     * @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