daemonfreaks.com

Wassr.vim: Update to 0.2.0

posted by jun-g at Mon, 14 Jul 2008 23:50 JST

今日もWassr.vimを更新。ダウンロードはこちらからどうぞ。→ wassr.vim-0.2.0

以下変更点。

  • Wassrを操作する部分コードを大幅に書き直した。
  • タイムラインを再取得した場合、前回取得分に追記して表示するようにした。
  • secondlifeのタイムラインを取得できるようにした。
  • 中途半端なTODO取得機能を削除。

以下、残りのTODO。

  • タイムラインの自動読込
  • 新着メッセージのハイライト
  • TODOの追加・更新・削除
  • その他のAPIが扱えるように

vimの操作が難しい…。

PythonでAMF

posted by jun-g at Mon, 14 Jul 2008 01:39 JST

PYthonでAMFを扱うためのライブラリにPyAMFというのがありまして、こいつにはDjangoやGAE、WSGI上で動作させる為のゲートウェイモジュールが含まれていて、サイトに掲載されているサンプルもそれらを利用したものになっているのですが、そもそもそういったフレームワークが使えない、WSGI準拠でもない既存の環境で使用するにはどうすれば良いのか今ひとつわからなかったので、ちょろっと調べて、サイトにあるHelloWorldを動作させる為のシンプルなCGIを書いてみました。

#!/usr/bin/env python
# coding: utf-8

import sys
import pyamf
import pyamf.remoting.gateway

def echo(value):
    return value

services = {"echo": echo}

base_gateway = pyamf.remoting.gateway.BaseGateway(services)
context = pyamf.get_context(pyamf.AMF0)
pyamf_request = pyamf.remoting.decode(sys.stdin.read(), context)
pyamf_response = pyamf.remoting.Envelope(pyamf_request.amfVersion,
                                         pyamf_request.clientType)

for name, message in pyamf_request:
    pyamf_response[name] = base_gateway.getProcessor(message)(message)

print "Content-type: %s\n" % pyamf.remoting.CONTENT_TYPE
print pyamf.remoting.encode(pyamf_response, context).getvalue()

とまあ、こんな感じで、リクエストデータをPythonオブジェクトに変換、処理結果をAMFに変換してレスポンス、とすれば良いみたいです。何者にも依存しない最小の処理が分かれば既存の環境への組み込み方も考え易くなりますね。

ちなみに、Flexを全然触っていないので、AMF3で新たに扱えるようになったオブジェクトがそれぞれどういったものなのか、さっぱりわかっていません…。まずい…。

あと、FreeBSD portsにPyAMFが存在しなかったので、作ってsend-prしておきました。ports/125573です。

そんなこんなで、今日もわさびむの更新は無しです。という言い訳を書きたかっただけなのでした。