http://chalow.net/2011-04-02-1.html にかいてあるものを node.js にしてみた。
HTTPのリクエストにはhttps://github.com/driverdan/node-XMLHttpRequest を使用。node.js の HTTP クライアントライブラリは Furl::HTTP とおなじぐらい低レベルなので、ラッパーをかませないととてもつかえない。
var sys = require('sys');var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;var APPID = 'APPID';var URL = 'http://setsuden.yahooapis.jp/v1/Setsuden/latestPowerUsage?appid=' + APPID;var xhr = new XMLHttpRequest();xhr.host = URL;xhr.onreadystatechange = function () { if (this.readyState == 4) { var body = this.responseText; var usage = body.match(/<Usage.*?>(\d+)<\/Usage>/)[1]; var capacity = body.match(/<Capacity.*?>(\d+)<\/Capacity>/)[1]; var hour = body.match(/<Hour.*?>(\d+)<\/Hour>/)[1]; var rate = Math.ceil(usage / capacity * 100); var graph_url = 'http://chart.apis.google.com/chart?chxt=x&chbh=a,4,5&chs=225x69' +'&cht=bhs&chco=FFCC33,FF0000&chd=t:'+rate+'|'+(100 - rate) +'&chtt=%E6%9D%B1%E4%BA%AC%E9%9B%BB%E5%8A%9B%E4%BD%BF%E7%94%A8%E7%8A%B6%E6%B3%81' + hour + '%E6%99%82%E5%8F%B0&chts=676767,14.5'; sys.puts("Location " + graph_url + "\n\n"); } else { // console.log("..."); }};xhr.open('GET', URL);xhr.send();
Published: 2011-04-04(Sun) 22:38