/* * @title (仮)Wizball の詳細ページを保存用に、ちょっといじる * @description (仮)Wizball の詳細ページを保存用に、ちょっといじる * @include https://m.wizball.io/questions/* * @license MIT License http://opensource.org/licenses/MIT * @javascript_url * */ /* ・コメントを全て展開して、全文表示されるようにした ・コメントにアイコンをつけた ・Voter のアイコンを表示するようにした ・投稿時刻を日時にした ・下部の「人気の質問」を消した ・表示幅を、最大 640px にした ■免責事項 この Bookmarklet を使うことによって生じた、いかなる損害、不利益等に関しても a-kuma3 は一切の責任を負いません。 それを承諾した方だけ、お使いください。 history 2019-07-28 バッククォートを外して、Hatena::Let へ 2019-08-01 Wizball で告知 2019-08-02 Chrome : デフォルトアイコンだと名前が出ちゃう 2019-08-02 Chrome : コメントが複数行になってない 2019-08-02 コメントにポリシー違反があったときの対応 */ (async _ => { if (location.hostname != "m.wizball.io") { alert("Please use at m.wizball.io !"); return; } const d_ = document; const ts = Date.now(); const msg = d_.querySelector(".question_logo"); async function display_comments() { // console.log("!!! load comments !!!"); const list = d_.querySelectorAll(".comment_list"); for (let i = 0 ; i < list.length ; ++i) { const first_item = list[i].querySelector(".comment_txt"); if (! first_item) { // 質問はコメントがなくても UL 要素がある continue; } const orig_url = first_item.href; const url_base = orig_url.replace(/questions/, "apis/v1/questions"); const comments = []; let page = 1; while (true) { const url = url_base + "?page=" + page + "&size=50&sort=LATEST"; const resp = await fetch(url); const json = await resp.json(); if (json.length > 0) { comments.push(... json); page += 1; } else { break; } } // console.log(comments); list[i].innerHTML = ""; comments.forEach(c => { let img; if (c.status == "PENALTY") { const item = Object.assign(d_.createElement("li"), { className: "comment_item", innerHTML: '
', }); list[i].appendChild(item); return; } if (c.author.image) { img = [ '' ].join(""); } else { img = ''; } const item = Object.assign(d_.createElement("li"), { className: "comment_item", innerHTML: [ '