<[ ]> Fork

    @@ -13,8 +13,8 @@ 'use strict'; //*/ const enlarged = - location.pathname.replace(/\/(?<x>\d+)x(?<y>\d+)\//, (orig, ...sizes) => { - const { x, y } = sizes[sizes.length - 1]; + location.pathname.replace(/\/(?<x>\d+)x(?<y>\d+)\//, (orig, ...args) => { + const { x, y } = args[args.length - 1]; if (x !== y) return orig; // x === y; square
  • /*
     * @title <[ ]>
     * @description NxN enlarge
     * @include http://*
     * @include https://*
     * @license MIT License https://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    // e.g.
    // https://thumbnailer.mixcloud.com/unsafe/300x300/extaudio/3/3/f/b/e75c-b5da-4d33-bfe4-bc454c707ad1
    (() => {
        'use strict';
        //*/
        const enlarged =
            location.pathname.replace(/\/(?<x>\d+)x(?<y>\d+)\//, (orig, ...args) => {
                const { x, y } = args[args.length - 1];
                if (x !== y) return orig;
    
                // x === y; square
                const side = Number(x);
                return `/${ side * 2 }x${ side * 2 }/`;
        });
        // suppress reload
        if (location.pathname === enlarged) return;
    
        location.pathname = enlarged;
        /*/
        // WIP .match();
        const [sides, x, y] = location.pathname.match(/\/(?<x>\d+)x(?<y>\d+)\//);
        if (x !== y) return;
    
        // x === y; square
        const side = Number(x);
        // TODO replace size
        location.pathname = `/${ side * 2 }x${ side * 2 }/`;
        //*/
    })();
    
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。