no category list @ hatena blog manage

  • /*
     * @title no category list @ hatena blog manage
     * @description カテゴリがない記事の管理 question:1499310079
     * @include http://blog.hatena.ne.jp/my/entries
     * @license MIT http://opensource.org/licenses/MIT
     * @javascript_url
     */
    (function() {
        const forEach = Array.prototype.forEach;
        const d_ = document;
    
        function hide_has_category() {
            forEach.call(d_.querySelectorAll("table.table-blog-entries td.td-blog-category"), function(td) {
                if (! /^\s+$/.test(td.textContent)) {
                    td.parentNode.style.display = "none";
                }
            });
        }
    
        function load_next(url) {
            let pager_next = d_.querySelector('button.load-next-entries:not([style*="display: none"])');
            if (pager_next) {
                pager_next.click();
            }
        }
    
        let n = 0;  // びびりなので、一応 ガード
        var MutationObserver = window.MutationObserver || window.WebkitMutationObserver;
        new MutationObserver(function (records) {
            if (n < 200) {
                hide_has_category();
                load_next();
            }
            n += 1;
        }).observe(document.body, { childList: true, subtree: true });
    
        hide_has_category();
        load_next();
    
    })();
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2017/07/06 19:45:33 - 2017-07-06