スキップしてメイン コンテンツに移動

Google App Engineでネコ化計画

Google App Engineが楽しい。ちょっと忙しいということもあって、まだほとんど触っていないんだけど、それでも簡単なお遊びウェブアプリを作ってみた。作るというのがおこがましいような落書きだけど。で、起動するとPython: ワンライナーでマンデルブロ集合を描くのページの文章をネコっぽくして、画像もネコの画像に置き換える。


以下に示すように、ソースコード(kitten.py)はいたってシンプル。アイデアさえあれば、大抵のことはできそうだ。まだアカウントがないので稼働できないけど。早く欲しいなぁ。

#!/usr/bin/env python # -*- coding: utf-8 -*- import re import wsgiref.handlers from google.appengine.api import urlfetch from google.appengine.ext import webapp class MainPage(webapp.RequestHandler): def get(self): result = urlfetch.fetch("http://handasse.blogspot.com/2008/04/python.html") if result.status_code == 200: content = re.sub("。|\&#12290;", "にゃ。", result.content) content = re.sub("な", "にゃ", content) img_list = re.findall('<img (?:.*)src="([a-zA-Z0-9\-/.:_]+)"', content) for img in img_list: content = re.sub(img, "images/kitten.jpg", content) self.response.out.write(content) def main(): application = webapp.WSGIApplication([('/', MainPage)]) wsgiref.handlers.CGIHandler().run(application) if __name__ == "__main__": main()

ここのブログはなぜか句点が文字参照なので置換処理に変なコードが含まれているけど気にせずに。app.yamlや使用した画像ファイルなどはあまり意味がないので割愛。

追記:
app.yamlと画像ファイルを割愛したけど、Google App Engineですぐ結果を見たい人のために、やっぱり示しておく。app.yamlの中身は以下の通り。

application: kitten version: 1 runtime: python api_version: 1 handlers: - url: /images/(.*) static_files: static/images/\1 upload: static/images/(.*) - url: .* script: kitten.py

dev_appserver.pyを実行するディレクトリに、kittenというディレクトリを作り、そこにkitten.pyとともに置く。画像ファイルはEyesPic子猫 - フリー画像素材の画像を、

python -c "import Image; Image.open('eyes0422.jpg').resize((256, 184)).save('kitten.jpg')"

で256x184にリサイズした(kitten.jpg)。画像ファイルはkitten/static/images/に置くこと。

あとは、

dev_appserver.py kitten

と実行し、http://localhost:8080/にアクセスするだけ。

URLをスラッシュドット・ジャパンGIGAGINEなどに変更して試したりもしたけど、それなりに面白かった。

コメント