LoginSignup
1
2

More than 5 years have passed since last update.

Web版TwitterでNGワードを表示しないGreasemonkey userscript

Posted at

シン・ゴジラについてのネタバレを見たくなかったのでカッとなって作った

皆さんシン・ゴジラご覧になりましたか?ぼくはまだ観ていません。TLで面白いともっぱらの評判です。

そしてネタバレすると面白さ半減という話も聞きました。ネタバレ、されたくありませんね。

しかし良い映画は感想を言いたくなるのが人情。「ネタバレしないで!」とお願いする前に、Twitterで流れてくる情報は自分でコントロールしましょう。ということでuserscriptを書きました。

Greasemonkeyとは

Firefoxのアドオンです。

Greasemonkey :: Add-ons for Firefox

  1. 任意のサイトで
  2. 任意のJavaScriptを実行できるようにする

というAdd-onです。ぼくは今回作ったTwitterのサイトでNGワードを表示しないスクリプトの他に、下記スクリプトを導入しています。

  • Twitterの画像を原寸大で表示させるボタンを追加させるスクリプト
  • livedoor Dwango Reader(旧livedoor Reader)で最後の記事から次の記事へjキーで移動できるようにするスクリプト

Greasemonkey、便利なのでおすすめです。

Web版TwitterでNGワードを表示しないユーザースクリプト

ここからが本題です。下記の通り処理をしています。

  1. @includeでスクリプトの動作対象となるサイトを指定する(正規表現で指定可能)
  2. @requireでjQueryを読み込み
  3. ngWordsでNGワードを指定(配列で複数指定可能)
  4. HTML内のtweet-textクラスを総当りしてNGワードがヒットしたら削除する

すごく重いです。はやくシン・ゴジラ見てこのスクリプトをオフにしたいと思います。

TwitterFilter.user.js
// ==UserScript==
// @name        TweetFilter
// @namespace   http://www.designsatellites.jp/
// @description 指定したNGワードを含むツイートを非表示にします
// @version     1
// @grant       none
// @include https://twitter.com/*
// @require https://code.jquery.com/jquery-3.1.0.min.js
// ==/UserScript==

(function () {
    var ngWords = [
        'godzilla',
        'ゴジラ',
        'シンゴジ'
    ];

    function removeTweet() {
        var tweet = $('.stream-item:has(\'.tweet-text\')');
        if (tweet.length > 0) {
            tweet.each(function (index, element) {
                var text = $(element).find('.tweet-text').text();
                $.each(ngWords, function (index, word) {
                    if (text.includes(word)) {
                        element.remove();
                        return true;
                    }
                });
            });
        }
    }

    removeTweet();

    $(document).bind('DOMNodeInserted', function (e) {
        var element = e.target;
        if (element.nodeName == 'LI') {
            removeTweet();
        }
    });
})();
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2