2008-12-15

mixi ホーム画面のマイミク一覧をログイン時間順で表示するグリモン

ふと思い立って昼休みに作った。経過時間別に背景色もつきます。

グループ分けとかしてるとうまく動かないかも。

order_home_mymixi.user.js

// ==UserScript==
// @name          order_home_mymixi
// @namespace     http://anond.hatelabo.jp/
// @include       http://mixi.jp/
// @include       http://mixi.jp/home.pl
// ==/UserScript==

(function() {
    if (window != window.parent) return;

    var homeTds = document.evaluate('//div[@id="mymixiList"]//td', document.body, null, 7, null);
    for (var i = 0; i < homeTds.snapshotLength; i++) homeTds.snapshotItem(i).innerHTML = 'loading...';

    GM_xmlhttpRequest({
        method: 'GET',
        url: 'http://mixi.jp/list_friend_simple.pl',
        onload: function(res) {
            var friends = [];
            var bgColor = {
                '01': '#ffffff',
                '02': '#fee7c6',
                '03': '#ffd8a7'
            };

            var div = document.createElement('div');
            div.innerHTML = res.responseText;
            var tds = document.evaluate('//div[@id="friendList"]//td', div, null, 7, null);
            for (var i = 0; i < tds.snapshotLength; i++) {
                var td = tds.snapshotItem(i);
                var klass = td.getAttribute('class');
                if (!klass || klass.search(/^iconState(01|02|03)/) == -1) continue;
                friends.push({
                    color: bgColor[RegExp.$1],
                    anchor: td.getElementsByTagName('a')[0],
                    name: td.getElementsByTagName('p')[0].innerHTML.replace(/^(.+)\(/, '$1 (')
                });
            }

            for (var i = 0; i < homeTds.snapshotLength; i++) {
                var td = homeTds.snapshotItem(i);
                td.innerHTML = '';
                td.style.background = friends[i].color;
                td.appendChild(friends[i].anchor);
                var span = document.createElement('span');
                span.innerHTML = friends[i].name;
                td.appendChild(span);
            }
        }
    });
})();

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん