2023-02-03

最近UserScriptを書くのが楽しい

最近UserScriptを書くことに目覚めて、不便なWebサイトちょっと改造して好みにするのにハマってる

例えば「辞書系のサイトなのにページを開いた瞬間から入力欄にカーソルがあってないのがいや」とか、そういう細かい点をこちらで勝手に改修するするような感じね

で、増田において「この人記事に対して毎回○○って反応つけてるけど面白いと思ってやってんのかな? 面白いと思ってやってんなら致命的に自分センスが合わないから消したいし、面白いと思ってないならただの害悪から消したいな」と思うことがあるわけですが、そういった異なる価値観に対して自動的に適切な距離を置くためのスクリプトを作ったのでメモがてら貼り付けておきます

// ==UserScript==
// @name        ますどくさいスイッチ
// @namespace   Violentmonkey Scripts
// @match       https://anond.hatelabo.jp/2*
// @grant       none
// @version     1.0
// @author      anond
// @description description
// ==/UserScript==

(async () => {
    // ここにNGワードをどんどん追加する
    // 基本は文字列文字列で引っ掛けにくいなら正規表現でもいい
    const keywords = [
        "あえいうえおあお",
    ];

    const checkedMarker = `data-a${Math.random().toString(36).slice(-8)}`;
    const query = `div[id^="excerpt-"]:not([${checkedMarker}]`;

    const delTree = () =>{
        const elems = [...document.querySelectorAll(query)];
        for(const elem of elems) {
            const textContent = elem.textContent;
            if(keywords.some((x) => (typeof x === "string") ? textContent.includes(x) : x.test(textContent))) {
                const parentContainer = elem.closest("li");
                parentContainer?.remove();
            } else {
                elem.setAttribute(checkedMarker, "true");
            }
        }
    };

    delTree();

    const mo = new MutationObserver(delTree);
    mo.observe(document.body, { childList: true, subtree: true });
})();
  1. ブラウザーにTampermonkeyやViolentmonkeyをインストールしUserScriptを動かせるようにする
  2. インストールした拡張機能ダッシュボードを開き新規スクリプトを追加する
  3. 上記全てをペタッと貼り付ける
  4. 配列keywordsに消したい文字列またはそれにマッチする正規表現を入れる
    1. いくらでも追加可能
    2. 多少増えたところで大して重くはならないと思う
  5. Ctrl+Sを推して保存する
  6. 記事の反応のうち消したい文字列に当てはまる発言(とさらにそれに反応した発言)がツリーから消える

keywordsを増やして君だけのどくさいスイッチを育ててね!

(追記)

ぐええ 文字勝手に置換されてる…不便だなあ

>」となっている箇所を「>」を半角で入力したものに置き換えてください

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん