初体験 (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とか書きます。
response.setHeader(”Content-Type”, ”text/plain”);
ネ。

cho45$X - ロックスターになりたい

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