2つのブコメを比較

    @@ -1,12 +1,13 @@ /* * @title 2つのブコメを比較 - * @description ブコメページで比較したいブコメページを + * @description 比較したいブコメページを入力→コメントがユーザーごとに並ぶ * @include https://b.hatena.ne.jp/entry/* * @license CC0 * @javascript_url */ (async () => { + document.documentElement.scrollTop = document.documentElement.scrollHeight const regexpEscape = s => s.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&'); const regexp = new RegExp(regexpEscape("https://b.hatena.ne.jp/entry/") + "(s/)*(.+)"); const BtoURL = s => s.replace(regexp, (_, p1, p2) => (p1 ? "https://" : "http://") + p2);
  • /*
     * @title 2つのブコメを比較
     * @description 比較したいブコメページを入力→コメントがユーザーごとに並ぶ
     * @include https://b.hatena.ne.jp/entry/*
     * @license CC0
     * @javascript_url
     */
    
    (async () => {
        document.documentElement.scrollTop = document.documentElement.scrollHeight
        const regexpEscape = s => s.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
        const regexp = new RegExp(regexpEscape("https://b.hatena.ne.jp/entry/") + "(s/)*(.+)");
        const BtoURL = s => s.replace(regexp, (_, p1, p2) => (p1 ? "https://" : "http://") + p2);
    
        const bookmarks = (await (await fetch('https://b.hatena.ne.jp/entry/jsonlite/?url=' + encodeURIComponent(BtoURL(prompt('比較ブクマURL', ''))))).json()).bookmarks;
    
        bookmarks.forEach(bookmark => {
            const targetElement = document.querySelector(`.is-active.bookmarks-sort-panel [data-user-name="${bookmark.user}"] .entry-comment-text`);
            targetElement ?
                (targetElement.style.display = "flex", targetElement.style.grid = "auto-flow / 1fr 1fr") :
                null;
            targetElement?.insertAdjacentHTML?.('beforeend', `<div style="background:wheat;">${bookmark.comment}</div>`);
        });
    })()
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。