2005/11/30
Skypeを利用したWeb Gateway
とあるところでは,Skypeを利用したWeb Gatewayが盛り上がっていました。とあるところというのは,Skypeのチャット上の話です。やっていることは単純で、Skypeのチャットのメッセージをlivedoorのhttp://translate.livedoor.com/に翻訳してもらって,それをチャットの中に表示するというものです。まあ、この説明だけだとそんなに面白くもないですね。
で、ソースコードがCなので、Pythonベースで書き直してみました。まだ、Pythonベースにしただけです。昨日の「twisted.web.clientとプロキシサーバ」のエントリはこれに関連しての下準備の話です。プロキシを通るようにするのに1時間とSkypeとコネクトして処理する部分に1時間の合計2時間なので、まあ、Pythonはいい感じ。コードは,Skypeに関する部分だけなら100行ちょっとの小さなプログラムです。まあ、Cに比べて極端に短い訳じゃないですが。。。ネットワークへのアクセスは、twistedなどの非同期IOを使わない(標準のhttplibを使うとか)とメインループが止まることになるのでスレッドを作ったりしますが,twistedはスレッドを作らなくてもそこそこ簡単に非同期でいろいろできるのでいいです。でも、どっちが簡単かは微妙。コールバックですべて処理するというのは、ものによっては大変だし。。。
さて、コードは,ここ。その前に下準備で,これこれ。うーん、下準備はちょっと大変かも。ちなみにWindowsでしか動きません。とりあえず、ちゃんと動いているようにみえます。たぶん、もう少し汎用的に書いて,Webのアクセス部分をPluginみたいなかんじで置き換えて,SkyNSのモジュールの一つになるんでしょう。ちょっと疲れたので,気分転換の作業でした。
SkyNSは?と言うと、まあ、こっそり公開してもいいんだけど。。。