とみふらの明るく楽しい日記

日記や俺用メモなどなんでもあり。

TLをスリム化&新着自動で開くぐりもんできたー。あと初めての動画うpとか。

Twitterの新着通知を自動で開くGreasemonkeyスクリプト(激しく出遅れ) - ごまにっき~いにしえ~
リンク切れ
TwitterのWebで新着Tweetを自動更新するようにするブックマークレット - 今日覚えたこと
新着通知を自動で開く例としては↑の3つを発見しました。コードがわかりやすかった一番下のを適当にぱくった使わせていただきました。

前回のと合わせたコードをぺたぺた

// ==UserScript==
// @name           slimtter
// @namespace      http://twitter.com/tomitake_flash
// @include        http://twitter.com/
// ==/UserScript==

(function(){
     //<li id="status_hogehoge" class="hentry hugahuga status">の
     //配列を渡すとスタイルを変更する。
     function changeStyle(hentrys){
	 for(var i=0; i<hentrys.length; i++){
	     var hentry = hentrys[i];
	     hentry.style.padding='0';
	     
	     var children = hentry.childNodes;
	     for(var j=0; j<children.length; j++){
		 if(children[j].className=='status-body'){
		     var sbody = children[j];
		     sbody.style.marginLeft='30px';
		     sbody.style.width='500px';
		     sbody.style.minHeight='0px';
		     sbody.style.fontSize='12px';
		     sbody.style.lineHeight='12px';	 
		     
		     var sbodychildren = sbody.childNodes;
		     for(var k=0; k<sbodychildren.length; k++){
			 if(sbodychildren[k].className=='meta entry-meta'){
			     sbodychildren[k].style.marginTop='0';
			 }
		     }
		     
		 }else if(children[j].className=='thumb vcard author'){
		     var thumb = children[j];
		     thumb.style.height='24px';
		     thumb.style.width='24px';
		     
		     if(thumb.firstChild.firstChild.className=='photo fn'){
			 var photo = thumb.firstChild.firstChild;
			 photo.style.height='24px';
			 photo.style.width='24px';
		     }
		 }
	     }
	 } 
     }

     //HOMEとかいうでかい字を消す
     var tlhead = document.getElementById('timeline_heading');
     for(var i=0; i<tlhead.childNodes.length; i++){
	 if(tlhead.childNodes[i].id=='heading'){
	     tlhead.removeChild(tlhead.childNodes[i]);
	 }
     }

     //初期のtweetsをスリム化
     changeStyle(document.getElementsByClassName('hentry'));
     
     //以下、自動新着表示
     var l = (function(){
		  return document.getElementById('results_update');
	      });
     if(l()){
	 setInterval(function(){
			 if(l().style.display == 'none')return;
			 //新着tweetsをスリム化
			 changeStyle(document.getElementsByClassName('buffered'));
			 var e = document.createEvent('MouseEvent');
			 e.initMouseEvent(
			     'click', true, true, window,
			     0, 0, 0, 0, 0, false, false, false, false, 0, null
			 );
			 l().dispatchEvent(e);
		     }, 3000);
     }

}
)();


実行例

Ubuntu9.04 + firefox3.5.7 + Greasemonkey0.8.20090920.2
Ubuntu9.04 + Google Chrome 5.0.307.5 dev
で動作確認できました。
ほとんど何も入れてないchromeでは結構快適に動くけど、色々アドオン入れてたり長年使いつづけてるfirefoxだと数十分するとすごく重くなってきます。というかこんなぐりもん使わなくとも前からfirefoxが重いのは気になってました。
そこで、SQLite Optimizerってアドオンを使ったら体感できる程度には軽くなりました。使ったことない人は使ったほうがいいです。

ところでひとつ問題が。しばらく放置してると新着取得しなくなる・・・。それに、やっぱり数千件取得するとだいぶ重くなると思います。まぁ重くなったらF5すればいいんですけど。


ちなみに初めてyoutubeに動画うpりました。これでぼくも動画うp童貞卒業です。


デスクトップの録画と動画の変換は以下を参考にしました。(ちなみにUbuntuの場合です。)
リンク切れ
リンク切れ
リンク切れ
リンク切れ

録画には"gtk-recordmydesktop"
動画変換には"winff"
ってパッケージを入れればいいぽいですね。
gtk-recordmydesktopで録画された動画はogvという形式なんですが、このままだとyoutubeにうpできないぽいのでyoutubeがおすすめしてるmp4に変換しようと思ったんですが、winffでmp4に変換しようとすると「libx264のエンコーダーねぇから!(unknown encoder 'libx264')」って言われました。よくわからないので仕方なくflvに変換してうpしました。