bibi/src/076mute.html

91 行
3.7 KiB
HTML

<title>076萌SNS用で特定ユーザーを非表示にする (Firefox用ユーザースクリプト) - 美々蝶々</title>
<h1>076萌SNS用で特定ユーザーを非表示にする (Firefox用ユーザースクリプト)</h1>
<ul>
<li>2023-02-03 たかし</li>
</ul>
<h2>1. 概要</h2>
<p>Firefox系ブラウザー用に、<a href="https://social.076.moe/main/public">076萌SNS</a>で特定ユーザーの投稿を非表示にできるユーザースクリプトを作りました。</p>
<ul>
<li><a href="./076mute.user.js">076mute.user.js</a></li>
</ul>
<p>機能は次の通りです。</p>
<ul>
<li>特定ユーザーの投稿を非表示にする</li>
<li>その投稿に對する他の人のリプライも非表示にする</li>
<li>未ログイン時も有效</li>
</ul>
<h2>2. 使用方法</h2>
<p>先づ、ユーザースクリプトを實行するための擴張機能をブラウザーに導入します。わたしは、<a href="https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/">ViolentMonkey</a> を導入しました。他の擴張機能 (<a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/">GreaseMonkey</a> など) を使用するなら、以降の文章を讀み換へてください。</p>
<p>擴張機能を導入したら、ユーザースクリプトを登録します。<a href="076.mute.user.js">076mute.user.js</a> をPCに保存して、ブラウザーで開くと ViolentMonkey の畫面が開き、ユーザースクリプトを登録するか確認してくるから、登録します。または、ViolentMonkey のメニューからユーザースクリプトを新規作成して、076mute.user.js の中身を貼り附けてください。</p>
<p>登録したら、ユーザースクリプトを編輯します。「ユーザー名@ドメイン名」の部分を非表示にしたいユーザーに變更してください。例へば、<a href="https://social.076.moe/tak4">たかし(tak4@social.076.moe)</a> を非表示にするには次の様にします。</p>
<pre><code>var selector_mute = [
&quot;[title='<strong>tak4@social.076.moe</strong>']&quot;,
];</code></pre>
<p>複數を非表示にする時は行をコピーして増やします。</p>
<pre><code>var selector_mute = [
&quot;[title='<strong>tak4@social.076.moe</strong>']&quot;,
&quot;[title='<strong>bad_user@example.com</strong>']&quot;,
&quot;[title='<strong>other_user@example.com</strong>']&quot;,
];</code></pre>
<p>ユーザースクリプトを編輯・保存して、SNSにアクセスすると、特定のユーザーの投稿が表示されなくなります。</p>
<h2>「076moe.user.js」全文</h2>
<pre><code>// ==UserScript==
// @name 076mute
// @match *://social.076.moe/*
// @version 1.0
// @run-at document-start
// ==/UserScript==
(function () {
var selector_mute = [
&quot;[title='ユーザー名@ドメイン名']&quot;,
];
var selector_entry = &quot;li.h-entry&quot;;
function del(node) {
if (node &amp;&amp; node.parentNode) {
node.parentNode.removeChild(node);
}
}
function run() {
var result = document.querySelectorAll(selector_mute.join(&quot;,&quot;));
var i = 0;
while (result[i]) {
del(result[i].closest(selector_entry));
i++;
}
}
var tid = setInterval(run, 0);
window.addEventListener(&quot;DOMContentLoaded&quot;, function f() {
run();
clearTimeout(tid);
window.removeEventListener(&quot;DOMContentLoaded&quot;, f);
}, false);
window.addEventListener(&quot;beforeunload&quot;, function f() {
clearTimeout(tid);
window.removeEventListener(&quot;beforeunload&quot;, f);
}, false);
}());</code></pre>