ブックマーク一覧で、既読のものを非表示にする
適当になろう向けのChrome/Edgeの拡張機能を作ってみます。
とりあえず、BM一覧の整理。BMは主に連載物を登録していますが、感想を書くものとか、あえて最新話にBMを更新しないようにしていたりします。あるいは、もちろん読んでいないものとか。そういうものが読んだ作品の中に埋まってしまい、見つけ出すためにはリストをちゃんと眺めないといけなくなります。
そこで、読み終わっているBM、すなわちBM位置と最新位置の部分数が同じものを表示させないようにする拡張機能を作ってみました。
ChromeとEdgeはエンジンが同じなので、同じ拡張機能を使用することができます。本当に配布するならストアに登録とかしないといけないのでしょうが、基本自分で使う分には、そこまですることもないので。これらのブラウザは、フォルダに収めた拡張機能のファイルを手動でインストールすることができます。
具体的には、以下の2つのファイルを同一のディレクトリに保存します。
manifest.json
-----ここから
{
"name": "narouListModifier",
"version": "1.0.0",
"manifest_version": 3,
"description": "なろうのBMから最新まで読んだものを非表示にする",
"content_scripts": [{
"matches": ["https://syosetu.com/favnovelmain/list/*"],
"js": [
"content.js"
]
}]
}
-----ここまで
content.js
-----ここから
let tables = document.querySelectorAll("table.favnovel");
for (let i = 0; i < tables.length; i++) {
const table = tables[i];
const text = table.querySelector("tr td.info span.no").innerText;
const match = text.match(/(\d+)部分.*?(\d+)部分/);
if (match) {
//console.debug(match[1], match[2]);
if (match[1] === match[2]) {
//console.debug("remove it");
table.style.display = "none";
}
}
}
-----ここまで
次に、ブラウザでedge://extensionsまたはchrome://extensionsで拡張機能の設定画面を開き、開発者モードまたはデベロッパーモードのトグルスイッチ有効にします。すると、「展開して読み込み」または「パッケージ化されていない拡張機能を読み込む」のボタンが表示されるようになるので、こちらをクリックしてファイルを保存したディレクトリを指定します。すると、拡張機能が登録されます。
この拡張機能はトグルスイッチで個別にOn/Offが出来ますので、BMの絞り込みが不要な場合は機能をOffにすれば、機能が無効化されます。
本当は、もっといろいろなUIを付けたりしないといけないんでしょうが、こんな最小限な仕組みでも意外と便利なものが作れたりします。
当初は、jsファイルの名前がcontents.jsになっていました。これはmanifestにあるようにcontent.jsが正しくなりますので、修整しました(要するに、揃えないとだめ)。
読み直して気づいたのだけれど、第4部分に乗せた編集ページ移動の機能を入れていたので、簡単に修正できたもんねw