概要
Misskey v13.11現在、ハードミュートはリプライ元やリノートを貫通します。
プラグイン等で弄れる部分ではないため、ブラウザ側で強制非表示にするUserScriptを作成しました。
ブラウザにTampermonkeyなどの拡張機能を入れることで利用できます。
仮想DOM生成の度にループ処理を回すので、NGワードの数が多いと重くなります。ご注意ください。
コード
下記の// @match https://misskey.io/*
の部分を使用するサーバーに書き換えてください。
ngWords = ["ミュート", "NGワード"];
部にNGワードを指定/追加してください。
(AND指定などはできません)
// ==UserScript==
// @name Misskey Mute
// @version 0.1
// @description Mute words on misskey
// @author @noc_turn@nijimiss.moe
// @grant none
// @match https://misskey.io/*
// @run-at document-idle
// ==/UserScript==
(function () {
'use strict';
// NGワードを設定
const ngWords = ["ミュート", "NGワード"];
const observerConfig = {
childList: true,
subtree: true
};
function observerCallback(mutationsList, observer) {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
const divs = document.querySelectorAll('div[tabindex="-1"]');
divs.forEach(div => {
const divText = div.innerText.toLowerCase();
for (let word of ngWords) {
if (divText.includes(word.toLowerCase())) {
div.style.display = 'none';
}
}
});
}
}
}
const observer = new MutationObserver(observerCallback);
observer.observe(document.body, observerConfig);
})();
導入方法
各ブラウザへの導入方法です。
iOS, MacOS
上記のソースをテキストエディタにて適当な名前(misskeyng.jsなど)で保存し、iCloudドライブなどに適当なフォルダ(Userscriptsなど)を作って入れておきます。
下記のアプリをインストールします。
Userscripts
UserScriptをiOSのSafariでも実行できるようになるアプリです。
- iOSの「設定」→「Safari」→「機能拡張」→で「UserScripts」をオンにします。できればすべてのWebサイトを「許可」にしておきます
- UserScriptアプリを起動して「Set Userscripts Directory」ボタンをタップし、先程のiCloudフォルダを指定します。
- Safariで該当のMisskeyサイトを開き、URLの横の左上の「ああ」or「AA」のアイコンをタップし、UserScriptをタップして該当のスクリプトをオンの状態にします。ここにない場合アドレスバーに
</>
のアイコンがあるかもしれません。
Macも同アプリにて利用できるようです。今Macbookが使えないので下記などを参照ください。
UserScripts 公式GitHub
Android
Chromeは拡張機能が使用できないので利用できません。
FireFoxは
Tampermonkey - Android Firefoxアドオン
から導入できます。
Firefoxの右上の︙からTampermonkeyを選び、新規スクリプト作成を行って上記コードを記述してください。
PC版
Tampermonkeyやgreasemonkeyなどの拡張機能を導入することで使用できます。
Tampermonkey - Chromeアドオン
Tampermonkey - Firefoxアドオン
Tampermonkey - Edgeアドオン
拡張メニューの「新規スクリプトを追加」から上記コードを記述してください。