増田です。 長文です。すみません。
On Sat, 15 May 2010 00:57:35 +0900 (JST) Tadashi MATSUO <[email protected]> wrote: > 今回の commit を導入すれば後は twittering-api-host, > twittering-web-host, twittering-api-search-host を変更するだけで > StatusNet を使えるようになるんですよね? いえ、URL のパス変更と、環境によっては文字コードの修正が必要です。 以下にまとめましたが、サンプルソースが必要でしたらお知らせください。 ◆URL のパス変更 今回は他のクライアントへのメリットも考慮して Apache の mod_rewrite で変 換しましたが、そういえば権限がないケースもありますね。 StatusNet を http://example.com/statusnet/ に構築した場合の Twitter と の違いは以下になります。 ホスト名 パス (1) 通常時 Twitter http://api.twitter.com /1/statuses/*.xml StatusNet http://example.com /statusnet/api/statuses/*.xml (2) 検索時 Twitter http://search.twitter.com /search* StatusNet http://example.com /statusnet/api/search* (3) "20 minutes ago" や "in reply to hoge" のリンク先 Twitter http://twitter.com /<アカウント>/status/<ツイート番号> StatusNet http://example.com /statusnet/notice/<ツイート番号> (4) ハッシュタグへのリンク先 Twitter http://twitter.com /#search?q=%23<タグ名> StatusNet http://example.com /statusnet/tag/<タグ名> mod_rewrite を使わず twittering-mode.el をベタに修正するとしたら、以下 のようになります。 (1) "1/" を全て "statusnet/api/" に置換 (2) twittering-call-api() の simple-spec-list の (search . "search") を (search . "statusnet/api/search") に変更。 (3) twittering-get-status-url() が返す URL を変更 (4) twittering-get-search-url() が返す URL を変更 ※ (4) については、mod_rewrite は判断出来ないので advice で対応してい ます。 (defadvice twittering-get-search-url (after twittering-get-search-url-for-hashtag activate) "ハッシュタグが指定されていたら、戻り値を StatusNet 用の URL に書き換える。" (let ((query-string (ad-get-arg 0)) hashtag) (when (string-match "^#\\(.+\\)" query-string) (setq hashtag (match-string 1 query-string)) (setq ad-return-value (format "http://%s/statusnet/tag/%s" twittering-web-host (twittering-percent-encode hashtag)))))) ◆文字コードの変更 Emacs のデフォルト文字コードが UTF-8 以外の時は、以下相等の処理が必要で す。Twitter はマルチバイト文字を %e3%81%bb%e3%81%92 のように符号化し送っ て来ますが、StatusNet は生の UTF-8 を送ってくるからです。 (defadvice twittering-start-http-session-curl (around twittering-start-http-session-curl-utf8 activate) "curl が受け取る文字コードを UTF-8 決め打ちにする。" (let ((coding-system-for-read 'utf-8)) ad-do-it)) >> 1. 時間の書式が少し異なる。 >> Twitter -> "2010-05-08T05:59:41Z" >> StatusNet -> "2010-05-08T08:44:39+00:00" > > この部分ですが、時差は無視して良いんでしょうか。 > http://status.net/ を見てもどういう値があり得るか分からなかった > のですが、運用によってはローカルタイムが使われる可能性もある気が > します。 タイムゾーンをいろいろ試してみましたが、大丈夫そうです。 # この時は UTC でテストしていました。 > ISO 8601形式( http://ja.wikipedia.org/wiki/ISO_8601 ) の時差が > 指定されていると思って解釈するパッチを作ってみました。 > こちらを試してみてもらえませんか。問題なければ増田さんのcommitを > 取り込むときに併せて commit します。 問題なさそうです。 > rel="related"の場合は必ずアイコン画像と思って良いでしょうか。 > 現状では user-profile-image-url のURLは実際にダウンロードしてみて > 画像形式を判断しています。大きいデータとか画像とかの場合に > 嫌なことになるかもしれません。 はい。検索時のアイコン画像だけで rel="related" が使われています。 -- Takashi Masuda <[email protected]> ------------------------------------------------------------------------------ _______________________________________________ twmode-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/twmode-users
