<[ ]> Fork

    @@ -9,10 +9,13 @@ // e.g. // https://thumbnailer.mixcloud.com/unsafe/300x300/extaudio/3/3/f/b/e75c-b5da-4d33-bfe4-bc454c707ad1 + // https://thumbnailer.mixcloud.com/unsafe/400x300/extaudio/3/3/f/b/e75c-b5da-4d33-bfe4-bc454c707ad1 (() => { 'use strict'; - //*/ + + // TBD split('/').map().join('/') and/or .match() const enlarged = + //*/ location.pathname.replace(/\/(?<x>\d+)x(?<y>\d+)\//, (orig, ...args) => { const { x, y } = args[args.length - 1]; if (x !== y) return orig;
    @@ -20,21 +23,19 @@ // x === y; square const side = Number(x); return `/${ side * 2 }x${ side * 2 }/`; + /*/ + // implicit compact code + location.pathname.replace(/\/(?<x>\d+)x(?<y>\d+)\//, (...args) => { + const { x, y } = args[args.length - 1]; + if (x !== y) return args[0]; + + // x === y; square + return `/${ x * 2 }x${ x * 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 }/`; - //*/ })(); -
  • /*
     * @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
    // https://thumbnailer.mixcloud.com/unsafe/400x300/extaudio/3/3/f/b/e75c-b5da-4d33-bfe4-bc454c707ad1
    (() => {
        'use strict';
    
        // TBD split('/').map().join('/') and/or .match()
        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 }/`;
            /*/
            // implicit compact code
            location.pathname.replace(/\/(?<x>\d+)x(?<y>\d+)\//, (...args) => {
                const { x, y } = args[args.length - 1];
                if (x !== y) return args[0];
    
                // x === y; square
                return `/${ x * 2 }x${ x * 2 }/`;
            //*/
        });
        // suppress reload
        if (location.pathname === enlarged) return;
    
        location.pathname = enlarged;
    })();
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。