<[ ]>
by
noromanba
2018-04-19 [2018/04/19 08:54:38]
NxN, NxM enlarge
@@ -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 です。