なんかヘンなのができた。
(function(){
var Twitter = function(id, pass){
this.id = id;
this.pass = pass;
};
Twitter.prototype.Update = function(message){
return this._post('http://twitter.com/statuses/update.json', message);
}
Twitter.prototype.FriendTimeline = function(){
return this._post('http://twitter.com/statuses/friends_timeline.json', null);
}
Twitter.prototype._post = function(url, data){
var xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
xmlhttp.open('POST', url, false, this.id, this.pass);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(data);
if(xmlhttp.status != 200) WScript.echo(xmlhttp.status + ' ' + xmlhttp.statusText);
return xmlhttp.responseText;
}
var args = WScript.Arguments;
if(args.length < 2) return;
var twitter = new Twitter(args.Item(0), args.Item(1));
if(args.length == 2){
var log = {};
while(true){
var items = eval(twitter.FriendTimeline());
items.sort(function(a, b){ return a.id - b.id; });
for(var i = 0; i < items.length; i++){
var item = items[i];
if(log[item.id]) continue;
var t = item.created_at.split(' ');
var d = new Date(t[1] + ' ' + t[2] + ',' + t[5] + ' ' + t[3] + ' ' + t[4]);
var line =
d.getFullYear() + '.' +
(d.getMonth() + 1) + '.' +
d.getDate() + ' ' +
d.getHours() + ':' +
d.getMinutes() + ' ' +
item.user.screen_name + '\n' +
item.text + '\n';
WScript.echo(line);
log[item.id] = 1;
}
WScript.Sleep(60 * 1000);
}
}else{
var statuses = [];
for(var i = 2; i < args.length; i++){
statuses.push(args.Item(i));
}
twitter.Update('status=' + encodeURIComponent(statuses.join(' ')));
}
})();
JavaScriptで作ったTwitterのクライアント。WSHです。twitterclient.jsなどの名前で保存してください。
cscriptを使って、コマンドライン引数にTwitterのIDとパスワードを渡して起動すると、標準出力にTwitterのタイムラインを書き出します。1分ごとに新着チェックをして、見つかればどんどん出力されます。Ctrl + Cで終了。
cscript twitterclient.js user_id p@ssw0rd
こんな感じ。
コマンドライン引数にTwitterのIDとパスワードとメッセージを渡して起動すると、そのメッセージを投稿します。これは以前作ったTwitterに投稿するJavaScriptと同じです。なので今回のコードは以前のコードを完全に置き換えます。
cscript twitterclient.js user_id p@ssw0rd おはよう
こんな感じ。
わかんない。サンプル実装みたいなもの。改造すればJavaScriptでTwitterのBotを書けそうだ。まあBotを作るのはアイディアとかアルゴリズムとかいろいろ必要だけど、JavaScriptによるBotのためのフレームワークくらいは作れそう。