076萌SNS用で特定ユーザーを非表示にする (Firefox用ユーザースクリプト)

1. 概要

Firefox系ブラウザー用に、076萌SNSで特定ユーザーの投稿を非表示にできるユーザースクリプトを作りました。

機能は次の通りです。

2. 使用方法

先づ、ユーザースクリプトを實行するための擴張機能をブラウザーに導入します。わたしは、ViolentMonkey を導入しました。他の擴張機能 (GreaseMonkey など) を使用するなら、以降の文章を讀み換へてください。

擴張機能を導入したら、ユーザースクリプトを登録します。076mute.user.js をPCに保存して、ブラウザーで開くと ViolentMonkey の畫面が開き、ユーザースクリプトを登録するか確認してくるから、登録します。または、ViolentMonkey のメニューからユーザースクリプトを新規作成して、076mute.user.js の中身を貼り附けてください。

登録したら、ユーザースクリプトを編輯します。「ユーザー名@ドメイン名」の部分を非表示にしたいユーザーに變更してください。例へば、たかし(tak4@social.076.moe) を非表示にするには次の様にします。

var selector_mute = [
    "[title='tak4@social.076.moe']",
];

複數を非表示にする時は行をコピーして増やします。

var selector_mute = [
    "[title='tak4@social.076.moe']",
    "[title='bad_user@example.com']",
    "[title='other_user@example.com']",
];

ユーザースクリプトを編輯・保存して、SNSにアクセスすると、特定のユーザーの投稿が表示されなくなります。

「076moe.user.js」全文

// ==UserScript==
// @name 076mute
// @match *://social.076.moe/*
// @version 1.0
// @run-at document-start
// ==/UserScript==

(function () {
    var selector_mute = [
        "[title='ユーザー名@ドメイン名']",
    ];
    var selector_entry = "li.h-entry";

    function del(node) {
        if (node && node.parentNode) {
            node.parentNode.removeChild(node);
        }
    }

    function run() {
        var result = document.querySelectorAll(selector_mute.join(","));
        var i = 0;

        while (result[i]) {
            del(result[i].closest(selector_entry));
            i++;
        }
    }

    var tid = setInterval(run, 0);

    window.addEventListener("DOMContentLoaded", function f() {
        run();
        clearTimeout(tid);
        window.removeEventListener("DOMContentLoaded", f);
    }, false);

    window.addEventListener("beforeunload", function f() {
        clearTimeout(tid);
        window.removeEventListener("beforeunload", f);
    }, false);
}());