Hatena Space ham topics

    @@ -1,19 +1,25 @@ /* * @title remove spam topics @ Hatena Space - * @description やっつけだけど、まあまあ消える. see http://a-kuma3.hatenablog.com/entry/hatena_space_backup + * @description hidden spam topics on Hatena Space via http://a-kuma3.hatenablog.com/entry/hatena_space_backup * @include http://space.hatena.ne.jp/* - * @license MIT License + * @contributor a-kuma3 http://let.hatelabo.jp/a-kuma3/let/hLHUy6LimuEc (Fork of) + * @license MIT License http://opensource.org/licenses/MIT * @javascript_url */ -(function(){ - var re_spam_title = /^(https?:\/\/\S+|[A-z0-9 =+<>*$'.!"\[\]():\^&#\-'{}_~\/|]+$)/; - Array.from(document.body.querySelectorAll('ul.board-list [data-topic-type="board"] a, ul.space-top-board-list li a')).forEach(function(e) { - e.parentNode.classList.remove("hide"); - if (re_spam_title.test(e.title)) { - e.parentNode.classList.add("hide"); - } else { - console.log('"' + e.title + '"'); + +(() => { + const spamTitle = /^(https?:\/\/\S+|[A-z0-9 =+<>*$'.!"\[\]():\^&#\-'{}_~\/|]+$)/; + + // support expand/close topics + Array.from(document.body.querySelectorAll('.board-list [data-topic-id]')).forEach(topic => { + // reset visibility + topic.classList.remove('hide'); + + const title = (topic.querySelector('a[title]') || {}).title; + if (!title || spamTitle.test(title)) { + topic.style.display = 'none'; + return; } }); +})(); -}());
  • /*
     * @title remove spam topics @ Hatena Space
     * @description hidden spam topics on Hatena Space via http://a-kuma3.hatenablog.com/entry/hatena_space_backup
     * @include http://space.hatena.ne.jp/*
     * @contributor a-kuma3 http://let.hatelabo.jp/a-kuma3/let/hLHUy6LimuEc (Fork of)
     * @license MIT License http://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    (() => {
        const spamTitle = /^(https?:\/\/\S+|[A-z0-9 =+<>*$'.!"\[\]():\^&#\-'{}_~\/|]+$)/;
    
        // support expand/close topics
        Array.from(document.body.querySelectorAll('.board-list [data-topic-id]')).forEach(topic => {
            // reset visibility
            topic.classList.remove('hide');
    
            const title = (topic.querySelector('a[title]') || {}).title;
            if (!title || spamTitle.test(title)) {
                topic.style.display = 'none';
                return;
            }
        });
    })();
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2016/02/03 09:28:32 - 2016-02-03
  2. 2016/01/26 12:16:23 - 2016-01-26
  3. 2016/01/26 12:06:41 - 2016-01-26
  4. 2016/01/26 11:26:33 - 2016-01-26
  5. 2016/01/26 11:18:47 - 2016-01-26