Twitterブログパーツを改造
先日より、Twitterのブログパーツを使って、ブログのトップページに自分の最新情報を表示させていましたが、表示に違和感あったので、日本語化&改造をしてみました。
下記のコードの“●あなたのusername●”という部分を、Twitterのusernameに書き換えて、ブログのテンプレートや、お好きなページのお好きな場所に貼り付けてください(たとえば、 http://www.twitter.com/KASAI なら“KASAI”)。
そうすると、
----
:Twitter最新ステイタス:
帰宅。PCでニュースチェック中。 (26分前)
----
という感じに表示されます。JavaScriptがOFFになっているブラウザで見た場合は、表示されません(ここがポイント)。
<以下、コード>
下記のコードの“●あなたのusername●”という部分を、Twitterのusernameに書き換えて、ブログのテンプレートや、お好きなページのお好きな場所に貼り付けてください(たとえば、 http://www.twitter.com/KASAI なら“KASAI”)。
そうすると、
----
:Twitter最新ステイタス:
帰宅。PCでニュースチェック中。 (26分前)
----
という感じに表示されます。JavaScriptがOFFになっているブラウザで見た場合は、表示されません(ここがポイント)。
<以下、コード>
<script type="text/javascript">
function relative_time(time_value) {
var parsed_date = Date.parse(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
if(delta < 60) {
return '(1分以内)';
} else if(delta < 120) {
return '(1分前)';
} else if(delta < (45*60)) {
return '(' + (parseInt(delta / 60)).toString() + '分前)';
} else if(delta < (90*60)) {
return 'about an hour ago';
} else if(delta < (24*60*60)) {
return '(約' + (parseInt(delta / 3600)).toString() + '時間前)';
} else if(delta < (48*60*60)) {
return '(昨日)';
} else {
return '(' + (parseInt(delta / 86400)).toString() + '日前';
}
}
function twitterCallback(obj) {
var id = obj[0].user.id;
document.getElementById('my_twitter_status').innerHTML = obj[0].text;
document.getElementById('my_twitter_status_time').innerHTML = relative_time(obj[0].created_at);
}
document.write(":Twitter最新ステイタス:<br />");
</script>
<span id="my_twitter_status"></span> <span id="my_twitter_status_time"></span>
<script type="text/javascript" src="http://www.twitter.com/statuses/user_timeline/●あなたのUsername●.json?callback=twitterCallback&count=1"></script>
function relative_time(time_value) {
var parsed_date = Date.parse(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
if(delta < 60) {
return '(1分以内)';
} else if(delta < 120) {
return '(1分前)';
} else if(delta < (45*60)) {
return '(' + (parseInt(delta / 60)).toString() + '分前)';
} else if(delta < (90*60)) {
return 'about an hour ago';
} else if(delta < (24*60*60)) {
return '(約' + (parseInt(delta / 3600)).toString() + '時間前)';
} else if(delta < (48*60*60)) {
return '(昨日)';
} else {
return '(' + (parseInt(delta / 86400)).toString() + '日前';
}
}
function twitterCallback(obj) {
var id = obj[0].user.id;
document.getElementById('my_twitter_status').innerHTML = obj[0].text;
document.getElementById('my_twitter_status_time').innerHTML = relative_time(obj[0].created_at);
}
document.write(":Twitter最新ステイタス:<br />");
</script>
<span id="my_twitter_status"></span> <span id="my_twitter_status_time"></span>
<script type="text/javascript" src="http://www.twitter.com/statuses/user_timeline/●あなたのUsername●.json?callback=twitterCallback&count=1"></script>
- : trackbacks (6)