Hatena Bookmark: Sort comments

    
      
  • /*
     * @title Hatena Bookmark: Sort comments
     * @description はてブのコメントを(スターの数, 投稿日時)でソートする。
     * @include http://b.hatena.ne.jp/entry/*
     * @license Public Domain
     */
    
    (function(){
        var currentList = Array.prototype.slice.call(document.querySelectorAll(".bookmark-list")).filter(function(l){
            return l.parentNode.style.display != "none";
        })[0];
    
        var bookmarks = Array.prototype.slice.call(currentList.querySelectorAll("[id^=bookmark-user-]"));
        var sorted = bookmarks.sort(function(a, b){
            function extract(bookmark){
                return [bookmark.querySelectorAll(".hatena-star-star-container a").length,
                        bookmark.querySelector(".timestamp").textContent];
            }
            a = extract(a);
            b = extract(b);
            if(a > b)
                return 1;
            else if(a < b)
                return -1;
            else
                return 0;
        }).reverse();
    
        sorted.forEach(function(bm){
            currentList.appendChild(bm);
        });
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2013/10/04 22:44:11 - 2013-10-04
  2. 2013/06/12 01:33:38 - 2013-06-12
  3. 2013/06/12 00:35:01 - 2013-06-12