﻿// 設定

var userID = "ArenaSakuragawa"; // twitterのアカウント名
var tweetCount = 3;     // 表示したいツイート件数
var target = "#getrss";  // 表示したい場所を指定（ID名・クラス名など）

// スクリプトここから

$(function(){
	var tweeturl="http://twitter.com/status/user_timeline/" + userID + ".json?count=" + tweetCount + "&callback=?";
	
	$.getJSON(tweeturl, function(data){

	// JSONデータ読み込み
		$.each(data, function(i, item){
			var tweet = item.text
				// ハッシュタグとリプライを削除
				.replace(/@+([_A-Za-z0-9-]+)/ig, '')
				.replace(/#+([_A-Za-z0-9-]+)/ig, '');
				
			// 日時データを要素分解
			var created_at = item.created_at.split(" ");
			// 投稿日時変換 "Mon Dec 01 14:24:26 +0000 2008" -> "Dec 01, 2008 14:24:26"
			var post_date  = created_at[1] + " "
			               + created_at[2] + ", "
			               + created_at[5] + " "
			               + created_at[3];
			// 日時データ処理
			var date = new Date(post_date);     // 日付文字列 -> オブジェクト変換
			date.setHours(date.getHours() + 9); // UTC -> JST (+9時間)
			var year = date.getFullYear();
			var month  = date.getMonth() + 1;     // 月取得
			var day  = date.getDate();          // 日取得
			var hour = date.getHours();
			var minute = date.getMinutes();
			if (minute < 10){
				minute = "0" + minute;
			}

			var tweetDate = month + "/" + day;
			
			// リンクがあるかチェック
			var linkTo = tweet.match(/https?:\/\/[-A-Za-z0-9._~:\/?#@!$&\'()*+,;=%]+/);
			
			if(linkTo){
				// リンクがある場合はURLの表示を消して<a>で囲む
				var txt = tweet.replace(/(https?:\/\/[-A-Za-z0-9._~:\/?#@!$&\'()*+,;=%]+)/ig,'');
				var txt = tweetDate + '&nbsp;<a href=\"' + linkTo + '\">' + txt + '</a>';
			} else {
				// リンクがない場合はそのまま表示
				var txt = tweetDate + '&nbsp;' + tweet;
			}
			
			// ターゲットに<li>で追加
			$("<li class=\"loaded\"></li>").html(txt).appendTo(target);
		});

		$(target + " li").fadeOut("slow");
		$("li.loaded").delay(600).fadeIn("slow");

	});
});
