Re: [twmode-users] StatusNet
増田です。 長文です。すみません。 On Sat, 15 May 2010 00:57:35 +0900 (JST) Tadashi MATSUO t...@mymail.twin.jp 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) 通常時 Twitterhttp://api.twitter.com /1/statuses/*.xml StatusNet http://example.com /statusnet/api/statuses/*.xml (2) 検索時 Twitterhttp://search.twitter.com /search* StatusNet http://example.com /statusnet/api/search* (3) 20 minutes ago や in reply to hoge のリンク先 Twitterhttp://twitter.com /アカウント/status/ツイート番号 StatusNet http://example.com /statusnet/notice/ツイート番号 (4) ハッシュタグへのリンク先 Twitterhttp://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 masut...@nifty.com -- ___ twmode-users mailing list twmode-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/twmode-users
Re: [twmode-users] StatusNet
増田です。 On Sat, 15 May 2010 09:32:31 +0900 Tsuyoshi CHO tsuyoshi_...@users.sourceforge.net wrote: で、別件でのxAuth対応でそのまま愚直に実施すると、Basic認証を削ってしまう と思うので、うまく両立できる実装にしたほうがよさそうですね。 そうです。後でお願いしようと思ってました。 # ゆくゆくは個別パラメータをくくりだして、複数アカウントを並立して動かせ るといいなぁ... 個人的には Mew でいうところの、mew-config-alist があれば良いなと思って ます。あの実装だったら、StatusNet 固有のコードがあっても良いかも。 -- Takashi Masuda masut...@nifty.com -- ___ twmode-users mailing list twmode-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/twmode-users
Re: [twmode-users] StatusNet
松尾です。 良さそうですね。 今回の commit を導入すれば後は twittering-api-host, twittering-web-host, twittering-api-search-host を変更するだけで StatusNet を使えるようになるんですよね? 取り込む前にいくつか気になったところを確認させてください。 1. 時間の書式が少し異なる。 Twitter - 2010-05-08T05:59:41Z StatusNet - 2010-05-08T08:44:39+00:00 この部分ですが、時差は無視して良いんでしょうか。 http://status.net/ を見てもどういう値があり得るか分からなかった のですが、運用によってはローカルタイムが使われる可能性もある気が します。 ISO 8601形式( http://ja.wikipedia.org/wiki/ISO_8601 ) の時差が 指定されていると思って解釈するパッチを作ってみました。 こちらを試してみてもらえませんか。問題なければ増田さんのcommitを 取り込むときに併せて commit します。 3. image URL の指定が少し異なる。 Twitter - rel=image StatusNet - rel=related rel=relatedの場合は必ずアイコン画像と思って良いでしょうか。 現状では user-profile-image-url のURLは実際にダウンロードしてみて 画像形式を判断しています。大きいデータとか画像とかの場合に 嫌なことになるかもしれません。 --- 松尾 直志 t...@mymail.twin.jp diff --git a/twittering-mode.el b/twittering-mode.el index c4d85b5..9944f5b 100644 --- a/twittering-mode.el +++ b/twittering-mode.el @@ -3135,13 +3135,19 @@ BUFFER may be a buffer or the name of an existing buffer. (time-str (car (cddr (assq 'updated atom-xml-entry (author-str (car (cddr (assq 'name (assq 'author atom-xml-entry)) `((created-at + ;; ISO 8601 ;; Twitter - 2010-05-08T05:59:41Z ;; StatusNet - 2010-05-08T08:44:39+00:00 - . ,(if (string-match \\(.*\\)T\\(.*\\)[Z+] time-str) + . ,(if (string-match \\(.*\\)T\\(.*\\)\\(Z\\|\\([-+][0-2][0-9]\\):?\\([0-5][0-9]\\)\\) time-str) ;; time-str is formatted as ;; Combined date and time in UTC: in ISO 8601. - (format %s %s + - (match-string 1 time-str) (match-string 2 time-str)) + (let ((timezone (match-string 3 time-str))) + (format %s %s %s + (match-string 1 time-str) (match-string 2 time-str) + (if (string= Z timezone) + + + (concat (match-string 4 time-str) + (match-string 5 time-str) ;; unknown format? time-str)) (id . ,(progn -- ___ twmode-users mailing list twmode-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/twmode-users
Re: [twmode-users] StatusNet
長です。 StatusNetの実運用としては http://identi.ca/ がありますね。 確認には便利だと思います。 で、別件でのxAuth対応でそのまま愚直に実施すると、Basic認証を削ってしまう と思うので、うまく両立できる実装にしたほうがよさそうですね。 # ゆくゆくは個別パラメータをくくりだして、複数アカウントを並立して動かせ るといいなぁ... 以上です。 (2010/05/15 0:57), Tadashi MATSUO wrote: 松尾です。 良さそうですね。 今回の commit を導入すれば後は twittering-api-host, twittering-web-host, twittering-api-search-host を変更するだけで StatusNet を使えるようになるんですよね? -- Tsuyoshi CHO mailto:tsuyoshi@gmail.com -- ___ twmode-users mailing list twmode-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/twmode-users