ふと思い立って昼休みに作った。経過時間別に背景色もつきます。
グループ分けとかしてるとうまく動かないかも。
// ==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); } } }); })();