Scrapbox API監視 UserScript
2022/9/5 07:59
これまでは /api
で始まる文字列の引用符から引用符までしか捕捉できていませんでした
文字列の結合パターンを考慮し、同時に変数も含めました
実用性が格段に向上したものと思います
監視スクリプト.js(async () => {
const js = await (await fetch("https://scrapbox.io/assets/index.js")).text();
const matches = js.match(/"(\/api[^"]+)"(?:\.concat\(((?:[^,()]|\([^()]*\))+)(?:,[^"]+"([^"]+)")?[^)]*\)|\s*\+\s*([^+,;]+))*/gm).map(x => x.replace(/\.concat\(((?:[^,()]|\([^()]*\))+)(?:,[^"]*"([^"]+)")?[^,)]*\)|\s*\+\s*([^+,;]+)/gm, "{$1$3}$2").replaceAll('"',""));
const endpoints = [...new Set(matches)].sort()
console.log("Found API Endpoint(s):", endpoints.join("\n"));
})();