Re: [twmode-users] StatusNet

2010-05-15 スレッド表示 増田貴士
増田です。

長文です。すみません。

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

2010-05-15 スレッド表示 増田貴士
増田です。

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

2010-05-14 スレッド表示 Tadashi MATSUO
松尾です。

良さそうですね。
今回の 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

2010-05-14 スレッド表示 Tsuyoshi CHO
長です。

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