2つのブコメを比較
by
Lhankor_Mhy
2022-11-18 [2022/11/18 18:09:55]
比較したいブコメページを入力→コメントがユーザーごとに並ぶ
@@ -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 です。