初体験 (AppJetでジェットマシーン)
ちょっと誇張しています。タイトル。
http://taizooo.tumblr.com/day/2008/08/19 にログあり鱒。やろうとしていることはそちらで確認できます。gist.github の raw file をリビジョンに関わらず取得したかったのです。proxy.pacとかcssファイル置き場として gist を使うのが便利にならないかということです。
http://gistraw.appjet.net/?url=http://gist.github.com/5165/ で オレオレ proxy.pac for polipo が取得できます。一応動いているぽい。(ちなみに proxy.pac は otsune 師謹製のヤツです)
で、コチラ http://appjet.com/app/695571587/source が出来上がり。
/* appjet:version 0.1 */ page.setMode("plain"); var gisturl = request.params.url if (gisturl) { var docs = wget(gisturl); var hoge = docs.match(/<a href="\/raw\/(.*)\/(.*)">/); var rawlink = 'http://gist.github.com/raw/' + RegExp.$1 + '/' + RegExp.$2; var rawfile = wget(rawlink); print(raw(rawfile)); } else { print(H1('gist.github raw file wget')) print(H2('example')) print(PRE('http://gistraw.appjet.net/?url=http://gist.github.com/5165/')) }source: gistraw.appjet.net
コレ http://appjet.com/app/822147214/source と、コレ http://appjet.com/app/225252121/source を参考にしたです。try catch()とか使ってみたかったけどよくわかんないや。たぶんもっとスマートにできるんでしょう。動いているっぽいからいいけど。
追記:2008-08-25
appjetでxpiをwgetしてそれをそのままAppJetからmime-typeつけてprint raw(だっけ)で出す
Twitter / ku: @33 appjetでxpiをwgetしてそれをそのま...
response.setHeaderってやって contentType を追加した。ブラウザ上で改行もちゃんと表示されるようになった。とりあえずやっただけ。意味がわかってない。
/* appjet:version 0.1 */ page.setMode("plain"); var gisturl = request.params.url if (gisturl) { var docs = wget(gisturl); var hoge = docs.match(/<a href="\/raw\/(.*)\/(.*)">/); var rawlink = 'http://gist.github.com/raw/' + RegExp.$1 + '/' + RegExp.$2; var rawfile = wget(rawlink); response.setHeader("Content-Type", "text"); print(raw(rawfile)); } else { print(H1('gist.github raw file wget')) print(H2('example')) print(PRE('http://gistraw.appjet.net/?url=http://gist.github.com/5165/')) }source: gistraw.appjet.net
response.setContentType(contentType) というのもある。
追記:2008-08-26
どうでもいいけどContent-Typeは text/plain ですぜ。常に”でかい分類/細かい分類”っていうかんじでimage/jpegとかtext/javascriptとか書きます。
cho45$X - ロックスターになりたい
response.setHeader(”Content-Type”, ”text/plain”);
ネ。
text/plain と。
/* appjet:version 0.1 */ page.setMode("plain"); var gisturl = request.params.url if (gisturl) { var docs = wget(gisturl); var hoge = docs.match(/<a href="\/raw\/(.*)\/(.*)">/); var rawlink = 'http://gist.github.com/raw/' + RegExp.$1 + '/' + RegExp.$2; var rawfile = wget(rawlink); response.setHeader("Content-Type", "text/plain"); print(raw(rawfile)); } else { print(H1('gist.github raw file wget')) print(H2('example')) print(PRE('http://gistraw.appjet.net/?url=http://gist.github.com/5165/')) }source: gistraw.appjet.net