-
Notifications
You must be signed in to change notification settings - Fork 92
/
NEWS.ja
714 lines (679 loc) · 45.5 KB
/
NEWS.ja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
NEWS -- twittering-modeのあゆみ
=================================
HEAD: XXXX-XX-XX
------------------
### 重要なお知らせ
* 新規APIによるdirect message送信
direct messageは、新しいAPI "POST direct_messages/events/new"によっ
て送信されるようになりました。このAPIは宛先指定の際、ユーザの表示名
(screen_name)ではなくユーザIDを必要とします。direct messageの宛先は
従来通りscreen_nameで指定することができますが、twittering-modeが対応
するユーザIDを把握していない場合には送信に失敗する場合があります。
twittering-modeはtimelineの取得時にユーザIDも収集するので、一度宛先
ユーザのtimelineにアクセスすればこの問題を回避できます。
### 改良
* 140文字以上のdirect messageの表示に対応
* ユーザ情報の表示機能を追加
`twittering-display-user-information'実行するとカーソル位置のtweetの
ユーザ情報が表示されます(デフォルトでは"="にbindされています)。
* 140文字以上のtweetに対応
Twitterは現在、単純な文字数ではなくtweetに含まれる文字の「重み」の和
で「tweetの長さ」を測るようになっていることに注意してください。編集
バッファのモードラインにはこの重みが表示されます。現在ASCII文字の重
みは100となっており、重み100の文字であれば280文字までtweetに含めるこ
とができます。ひらがなや漢字等の重みは200となっていますのでこれまで
通り140文字しか含めることができません。
詳しくは下記のページを参照してください。
- https://developer.twitter.com/en/docs/basics/counting-characters
- https://developer.twitter.com/en/docs/developer-utilities/twitter-text.html
* EasyPGとの連携を改善
秘密情報を暗号化するもしくは復号する際に`epa-pintenry-mode'の設定が
反映されるよう修正しました。
GnuPG2(とそれに付属のgpg-agent)をEmacs 25.1以降のバージョンと共に使
用する場合、下記のように設定することでEmacsのミニバッファから
passphraseを入力することができるようになります。
(setq epa-pintenry-mode 'loopback)
* Direct message events timelineに対応
新しく":direct_message_events"というtimelineに対応しました。送信ある
いは受信したdirect messageに関するイベントを含むtimelineです。これは
direct messageに関する新しいAPIに対応しています。この新しいAPIの仕様
により、直近30日のイベントしか取得できません。
現在の実装の制限により、更新するたび直近50件のイベントのみが取得され
ます。それ以前のイベントを遡って取得することはできません。また、この
timelineではユーザ名、ユーザのscreen_nameが"UNKNOWN-NAME(ID:...)"や
"UNKNOWN-SCREEN-NAME(ID:...)"のように表示されることがあります。これ
は件の新しいAPIがユーザIDは返すものの、名前に関する情報を返さないた
めです。不足しているユーザ名等は、他のtimeline取得の際に集めた情報を
使って補われます。正しいユーザ名等で表示するために関数
`twittering-erase-old-statuses'(デフォルトでは"C-cC-e"にbindされてい
ます)を実行してのイベント情報再取得が必要となる場合があります。
### バグ修正
3.1.0: 2016-09-28
------------------
### 重要なお知らせ
* 公式ReTweetに対する公式ReTweet
公式ReTweet上で関数`twittering-native-retweet'(デフォルトでは"C-u
C-c C-m"にbindされています)を実行した場合に、その公式ReTweetに対する
公式ReTweetを投稿するようになりました。以前のバージョンでは、公式
ReTweetそのものではなく、ReTweetされたオリジナルのtweetに対する公式
ReTweetを投稿していました。これは対象ReTweetを投稿していたユーザに、
さらにReTweetが行われたことの通知がTwitterから正しく送信されるように
するための変更です。
* デフォルトのtweet描画書式の変更
変数`twittering-status-format'のデフォルト値が変更され、tweet中の改
行がそのまま描画され、また引用先tweetが描画されるようになりました。
以前の描画形式に戻すには変数`twittering-status-format'の値を
"%i %s, %@:\n%FILL[ ]{%T // from %f%L%r%R}\n "に設定してください。
### 改良
* 全てのVeriSign Root CA証明書を内蔵
https://www.symantec.com/page.jsp?id=roots で提供されている有効な
Root CA証明書を全て`twittering-mode.el'に内蔵しました。
* 140文字以上のdirect messageに対応
* 引用先tweetを描画する新しい書式指定子"%QT{...}"
`twittering-status-format'で使える書式指定子として引用先tweetを描画
する"%QT{...}"を追加しました。括弧の中には任意の文字列と書式指定子を
入れることができ、括弧内の書式指定子は引用されたtweetの情報を使って
描画されます。例えば、"%QT{%s}"は引用されたtweetの投稿者の
screen_nameとなります。"%QT{...}"は対象となるtweetが別のtweetを引用
しているときだけ描画されます。
引用されたtweet自体を表示したい場合はそのtweetのタイムスタンプ上で
`twittering-other-user-timeline'(デフォルトでは"v"にbindされています)を
実行してください。
* 投稿tweet内の"&"を正しく描画
投稿したtweetが"&"の文字を含んでいる場合、対応するJSONオブジェクト内
では"&"のように符号化されてしまいます。現在の版ではこれを正しく
"&"のように描画するようになりました。"&"を含むtweetを投稿する際、
Twitterサーバのよく分からない挙動のため投稿可能な長さであるかを正し
く計算できない場合がありますので注意してください。具体的には下記のよ
うな振舞いが確認されています。
- 120個の"&"からなるtweetは投稿可能ですが、121個のものを投稿しようと
すると"Status is over 140 characters."のエラーが起こり投稿できませ
ん。
- 115個の"&"と25個の数字からなるtweetは投稿可能ですが、116個の"&"と
24個の数字からなるtweetは"Status is over 140 characters."のエラー
が起こり投稿できません。
* 自分自身のtweetのretweet
自分が投稿したtweetをretweetできるようになりました。
### バグ修正
* 同一のtimelineに対してhookが二重に実行されるバグを修正
* 公式ReTweetに対するURLを修正
3.0.0: 2013-04-21
------------------
### 重要なお知らせ
* 暗黙に署名を付加する機能の廃止
関数`twittering-sign-string-function'と変数
`twittering-sign-simple-string'の機能は廃止されました。同様の機能は
`edit skeleton'で設定できますので、こちらを使ってください。
例えば以前までの設定
(setq twittering-sign-simple-string "footer")
は、以下の設定で置き換えられます。
(setq twittering-edit-skeleton-footer " [footer]")
(setq twittering-edit-skeleton 'footer)
* 変数`twittering-scroll-mode'の廃止
変数`twittering-scroll-mode'は廃止されました。現在の版は、過去の版で
scroll-modeが有効であったときのように振舞います。最新のtweetに追従す
るには、timelineバッファの最新側のヘッダもしくはフッタ上にカーソルを
置いてください。
* "C-cD"の代替として"C-cC-w"を導入
これまで、"C-cD"がtweet削除用関数'twittering-delete-status'にbindさ
れていました。しかしこのキーはEmacsのKey Binding Conventionsに則って
いません。そこでその代替として"C-cC-w"を同関数にbindしました。"C-cD"
も有効ですが、"C-cC-w"の使用を推奨します。
### 改良
* 現在のtimelineに応じたedit skeleton
現在のtimelineに応じたedit skeletonを定義できるようになりました。
詳しくは変数`twittering-edit-skeleton-alist'のdocstringを参照くださ
い。
また、定義済みedit skeleton `inherit-hashtags'と`inherit-any'は現在
のtimelineがハッシュタグを含むようなsearch timelineである場合に、そ
のハッシュタグを自動で追加するよう変更されています。
* 超過文字列の強調表示無効化
通常、`twittering-edit-mode'では140字を超える部分にoverlay
`twittering-warning-overlay'を付加して強調表示するようになっています。
しかし環境によってはinput methodとこのoverlayの更新とが干渉して問題
を起こす場合があるようです。そのような場合、下記の設定でoverlayの付
加を無効化すれば問題を回避できる可能性があります。
(setq twittering-disable-overlay-on-too-long-string t)
* tweet中のURI文字列へのジャンプ
tweet中のURI文字列へジャンプするコマンド`twittering-goto-next-uri'、
`twittering-goto-previous-uri'が追加されました。
また、旧来のコマンド`twittering-goto-next-thing'と
`twittering-goto-previous-thing'にC-uでprefix argumentを与えると
tweet中のURI文字列だけを対象としてジャンプするようになりました。
* CA証明書を追加
新たにRoot CA証明書`VeriSign Class 3 Public Primary CA - G2'と
`GeoTrust Global CA'を内蔵しました。これらの証明書はそれぞれ、
`api.twitter.com'と`search.twitter.com'のサーバ認証で参照されます。
以前から内蔵されている証明書`Equifax Secure Certificate Authority'は
URI短縮に用いる`www.googleapis.com'のサーバ認証でのみ参照されるよう
になりました。
* 新たな短縮URL生成サービスに対応
新たに`migre.me'に対応しました。下記のような設定で有効にできます。
(setq twittering-tinyurl-service 'migre.me) ;; for mig.re
* 指定したユーザ関連のretweetを集めたtimelineに対応
新しく":retweeted_by_user/USER", ":retweeted_to_user/USER"の2種類の
timelineに対応しました。前者は指定したユーザUSERが投稿したretweetを
集めたtimelineで、後者は指定したユーザのhome timelineに届くretweetを
集めたtimelineです。
`twittering-visit-timeline'(デフォルトでは"V"にbindされています)で指
定する際には":retweeted_by_user/"もしくは":retweeted_to_user/"と入力
してEnterを入力すると、続けて補完機能付きでユーザ名を入力できます。
* 文字数カウント時にt.coでの短縮を考慮
tweetを編集する際に、t.coでのURI変換を考慮した文字数を表示するように
なりました。変換後の文字数はhelp/configuration APIを通じて定期的に更
新されます。デフォルトの更新間隔は1日ですが、変数
`twittering-service-configuration-update-interval'で変更することもで
きます。
* 非ASCII文字を含むハッシュタグへの簡易的な対応
非ASCII文字を含むハッシュタグについても、強調表示されるようになり、
`v'でそのtimelineを開くことができるようになりました。ハッシュタグの
検出基準がTwitterのweb UIのそれとは多少異なる点に注意してください。
今のところ大きな問題は見つかっていませんが、場合によっては
twittering-mode上でハッシュタグと見なされる文字列がTwitterのweb UIで
はハッシュタグとは見なされない恐れはあります。
* t.coで短縮されたリンクを短縮前のURLで表示
Twitter公式のt.coサービスで短縮されたリンクが短縮前のURLとして描画さ
れるようになりました。但し`json.el'が利用不可の場合はsearch timeline
上ではt.coで生成されたURLがそのまま描画されます。また、リンク上で
`twittering-enter'(デフォルトでは`C-m')を実行した場合は短縮URL経由で
開かれます
* mentionのみからなるtweetの投稿
ポップアップバッファからであれば、mentionのみからなるtweetも投稿でき
るようになりました。
* `revive.el'によるtimelineバッファの復元
HIROSE Yuujiさん作のEmacs LISPプログラム`revive.el'でtimelineバッファ
を復元できるようになりました。設定方法には下記の2通りがあります。
1. 手動登録
(add-to-list 'revive:major-mode-command-alist-private
'(twittering-mode . twittering-revive:twittering))
(add-to-list 'revive:save-variables-local-private
'(twittering-mode twittering-timeline-spec-string))
(require 'revive)
2. 関数を使っての自動登録 (revive.el 2.19用)
(require 'revive)
(twittering-setup-revive)
上記設定で、手動登録の`(add-to-list ...)'の部分は`revive.el'をloadす
る前に評価する必要がある点に注意してください。また逆に自動登録の場合
は`revive.el'をloadした後で`(twittering-setup-revive)'を評価する必要
があります。
また、同じくHIROSE Yuujiさん作のEmacs LISPプログラム`windows.el'は
`revive.el'を暗黙にloadしますので、`windows.el'をloadするタイミング
にも注意してください。
* `twittering-retweet-format'用の新しい書式指定子"%u"
`twittering-retweet-format'で指定できる書式指定子として"%u"が追加さ
れました。これは引用されるtweetを指すURLと置き換えられます。
* skeletonによる非公式ReTweetの初期文字列設定
非公式ReTweetを編集する際の初期文字列を指定する変数
`twittering-retweet-format'にskeletonを指定できるようになりました。
文字列に加えて編集開始時のカーソル位置も指定できます。skeletonに含ま
れる文字列を下記の対応表によって変換してから、関数`skeleton-insert'
で挿入します。
対応表は以下の通りです。
%s - 引用されるtweetの投稿者のscreen-name
%t - 引用されるtweetの内容
%u - 引用されるtweetを指すURL
%# - 引用されるtweetのID
%% - %自身
この表は`twittering-retweet-format'に適用される規則と同じです。
この変数`twittering-retweet-format'による初期文字列の挿入後に変数
`twittering-edit-skeleton'で指定されたedit skeletonが適用される点に
注意してください。
* edit skeleton用に非公式ReTweetを示すシンボルを追加
edit skeletonにおける編集中tweetの種別を表現するシンボルに
`organic-retweet'が追加されました。非公式ReTweetにのみ適用されるedit
skeletonを定義できます。但し、現在の実装ではedit skeleton側から非公
式ReTweetされようとしているtweetの内容を参照することはできません。
* 非ASCII文字を含むリスト名に対応
* search timeline上での返信先tweetの表示
`json.el'が使用可能な場合には、search timelineにおいても返信先tweet
のIDが取得できるようになりました。`json.el'が使用可能であれば関数
`twittering-toggle-show-replied-statuses'(デフォルトでは"r"にbindさ
れています)を呼び出すことで返信先tweetを表示できます。
* ヘッダとフッタの表示
timelineバッファにヘッダとフッタが表示されるようになりました。これら
はtweetとは独立の特別な行として描画されます。ヘッダやフッタ上でEnter
キーを押す(もしくは`twittering-enter'を実行する)と、それがtimelineの
時系列で最新の側か過去の側かに応じてtweetを取得して描画します。
また、ヘッダとフッタの内の最新側にカーソルを置いておくと、常にカーソ
ル行の近くに最新tweetを描画するようにできます。
ヘッダ、フッタとして表示される文字列は、`twittering-timeline-header'、
`twittering-timeline-footer'という変数で変更できます。また、表示する
際のfaceは`twittering-timeline-header-face'と
`twittering-timeline-footer-face'で変更できます。
* exclude-if timelineに対応
新しく":exclude-if/FUNC/SPEC"というtimelineに対応しました。この
timelineはSPECで表されるものとほぼ同じですが、関数FUNCがnon-nilを返
すようなtweetは除外されている点が異なります。FUNCはひとつのtweetに対
応した連想リストをひとつ受け取る関数でなければなりません。FUNCとして
はλ式もしくは関数に対応するシンボルが指定できます。但しシンボルで指
定する場合、名前に"("や"/"を含むものは指定できません。SPECには任意の
timeline specを指定できます。例えば、home timelineから"WORD"を含む
tweetを除外したtimelineは下記のtimeline specで指定できます。
":exclude-if/(lambda (tweet) (string-match \"WORD\" (cdr (assq 'text
tweet))))/:home"
* merge timelineに対応
新しく"(SPEC1+SPEC2)"や"(SPEC1+SPEC2+SPEC3)"といった形式のtimelineに
対応しました。merge timelineは指定したtimelineのtweetを全て含む
timelineです。任意のtimeline specを構成要素にできます。例えば、
"(:direct_messages+:direct_messages_sent)"というtimeline specを使え
ばこれまでに送ったり受け取ったりしたdirect messageの全てをひとつのバッ
ファに表示できます。
* tweet描画時に実行される新しいhookの追加
新しいhook変数`twittering-new-tweets-rendered-hook'を追加しました。
このhookは実際に新しいtweetを描画したときに実行されます。以前に取得
したtweetを再描画する際には実行されません。既存のhook変数
`twittering-new-tweets-hook'はtweetの取得に成功するたびに実行される
ので、exclude-if timelineやmerge timelineのような複合timelineに含ま
れる実際には描画されないtweetについてもhookを実行します。新しいhook
は複合timelineについてもうまく動作します。
hook内では、`twittering-rendered-new-tweets'という変数で描画された
tweetのリストを参照できます。他にも描画されたtimelineを表すtimeline
specとtimeline spec文字列を`twittering-rendered-new-tweets-spec'と
`twittering-rendered-new-tweets-spec-string'という変数で参照できます。
詳細は`twittering-new-tweets-rendered-hook'のdocstringを参照してくだ
さい。
* 大域変数初期化時に実行される新しいhookの追加
新しいhook変数`twittering-mode-init-hook'を追加しました。このhookは
大域変数を初期化した後に実行されます。twittering-mode用のbufferを作
成するたびに実行される`twittering-mode-hook'とは異なり、新しいhookは
一度しか実行されません。
* 編集バッファ上でのtweet種別の表示
編集中のtweetについての情報が編集バッファの先頭に表示されるようにな
りました。編集中のtweetがreplyなのか、direct messageなのか、あるいは
通常のtweetなのかが確認できます。reply先のtweet内容のコピーもできま
す。
* 編集中のtweetをreplyとして送るかどうかの切り替え
編集中のtweetをreplyとして送るかどうかを編集バッファ上で切り替えられ
るようになりました。関数`twittering-edit-toggle-reply'(デフォルトでは
"C-c C-r"にbindされています)を呼ぶたびにreplyとして送るかどうかが切
り替わります。
* exclude-re timelineに対応
新しく":exclude-re/REGEXP/SPEC"というtimelineに対応しました。この
timelineはSPECで表されるものとほぼ同じですが、正規表現REGEXPにマッチ
するようなtweetは除外されている点が異なります。REGEXP内で / を指定す
る際は \ でエスケープする必要があります。例えば、Emacsの文字列リテラ
ル":exclude-re/\\//:home"で表されるtimelineでは、 / を含むtweetが除
外されています。
* replyの系列の逐次取得
新しい関数`twittering-toggle-or-retrieve-replied-statuses'(デフォル
トでは"R"にbindされています)を使って、replyを遡って取得できるように
なりました。この関数の動作は下記の通りです。
- カーソルがreply、もしくは展開表示されたreply先のいずれかを指してい
て、そのreplyの系列の一部がまだ表示されていない場合、そのreply系列
を可能な限り表示します。reply系列内のいくつかのtweetが未取得の場合
には、その内の最新のものを取得し、表示します。
- カーソルがreply、もしくは展開表示されたreply先のいずれかを指してい
て、そのreplyの系列が全て展開表示されている場合、展開表示をとりや
めます。
- カーソルがreply系列内のtweetを指していない場合、何もしません。
* 編集バッファ用を開く方法の設定
新たに変数`twittering-pop-to-buffer-function'を追加しました。この変
数は編集バッファを開く方法を指定するものです。デフォルトの値は関数
`twittering-pop-to-buffer-in-bottom-largest-window'となっています。
この関数は現在のフレーム内で最下段にあるウィンドウの内、面積最大のも
のを分割することで編集バッファ用のウィンドウを確保します。他にも、関
数`twittering-pop-to-buffer-in-current-window'を指定することもできま
す。この関数は現在のウィンドウを分割してウィンドウを確保します。
* single tweet timelineに対応
新しく":single/ID"というtimelineに対応しました。このtimelineはIDで
指定されたtweetのみからなるtimelineです。非常に古いtweet等にアクセス
するのに利用できます。
* tweetに含まれるURLからのsingle tweet timeline取得
特定のtweetを指すURL上で関数`twittering-other-user-timeline'を呼ぶこ
とで、そのtweetに対応したsingle tweet timelineを開けるようになりまし
た。この関数はデフォルトでは"v"にbindされています。
* 特定日時以前のtweetを取得するコマンドを追加
現在のtimelineの、指定した日時以前のtweetを取得できる新しいコマンド
`twittering-get-tweets-before'が追加されました。
* favorites timelineで過去のtweetの遡って取得する機能を追加
* timelineごとに異なる取得間隔
新しい変数`twittering-relative-retrieval-interval-alist'で、timeline
ごとに取得間隔を変更できるようになりました。この変数は正規表現と相対
間隔からなる連想リストです。この正規表現にマッチするtimelineは、
`twittering-timer-interval'を「相対間隔」倍した間隔で更新されるよう
になります。
* Twitter REST API v1.1に対応
変数`twittering-service-method'の値を`twitter-api-v1.1'に変更しまし
た。この設定でtwittering-modeはTwitter REST API v1.1を使うようになり
ます。この場合、SSL接続とJSON解析器が必要です。SSL接続にはcURL with
OpenSSL, GNU Wget with OpenSSL, OpenSSLとGnuTLSのいずれかが必要で、
さらにJSON解析器として`json.el'が必要となる点に注意してください。
Emacs22とそれ以前のEmacsでは`json.el'が同梱されていませんので別途用
意する必要があります。
また、Twitter REST API v1.1ではいくつかのtimelineが廃止されています。
廃止されたtimelineに対応するtimeline spec文字列は":friends",
":replies", ":public", ":retweeted_by_me", ":retweeted_to_me",
":retweeted_by_user/USER", ":retweeted_to_user/USER"です。
### バグ修正
* 認証成功・失敗についてのメッセージが表示されるよう修正
* 利用可能な通信方法(connection method)の確認処理の修正
* HMAC-SHA1の計算を修正
以前の`twittering-hmac-sha1'は現在のcoding-systemによっては間違った
結果を返す場合がありました。この問題を修正しました。
* 数字からなるユーザ名(screen_name)とユーザIDの混同を一部修正
他ユーザのtimelineを取得する際、数字のみからなるユーザ名を指定すると
ユーザIDと混同してしまう問題を修正しました。他ユーザの「お気に入り」
(favorites)を取得する場合にも同様の問題が起こりますが、こちらは修正
できていません。「お気に入り」を取得するAPIにユーザIDではなくユーザ
名を指定するパラメータがないためです。
Thanks to Makoto Fujiwara who reported this problem.
* tweet編集バッファを開いた際の意図しないカーソル移動を解消
`twittering-mode'で管理されていないバッファから
`twittering-update-status-function'を呼び出して編集バッファを作ると
元のバッファでのカーソルが不必要に動かされてしまうバグを解消しました。
Thanks to mofigan who reported this problem.
* アイコン保存処理を修正
`twittering-icon-storage-limit'もしくは`twittering-convert-fix-size'
がnilの場合に、アイコンが正しく保存できていなかったのを修正しました。
Thanks to HufflepuffBR who reported this problem about the former
variable `twittering-icon-storage-limit'.
* byte-compile時、`load-path'に無条件でパスが追加される問題を解消
twittering-modeのrepositoryに含まれているディレクトリ`emacs21',
`url-emacs21'がbyte-compile時に無条件で`load-path'に加えられており、
byte-compile時にいくつかのマクロがEmacs21用の古い定義として取り込ま
れていました。古い定義は22以降のEmacs上で使うことができませんので
byte-compileによって正しく動作しないファイルが生成される状態になって
いました。そこでbyte-compile時にもEmacs 22以降ではパスが追加されない
よう変更して、この問題を解消しました。
Thanks to HKey who has discovered the bug.
* カーソル移動がおかしくなる問題を解消
tweetに割り当てたtext propertyが干渉して、twittering-modeのbuffer内
での論理行単位のカーソル移動がおかしくなっていました。この問題を解消
しました。
Thanks to lemit who reported the problem.
* bufferからtweetを消すのをtweet削除APIが成功した後に変更
bufferからtweetを消去するタイミングを`destroy-status' APIが成功した
という応答を受け取った後に変更しました。APIが失敗に終わった場合、
対象tweetはbufferに残っているので再度削除を試みることができます。
* search timeline spec内の検索文字列のエスケープを修正
* 非同期実行される関数がエラーを起こしていたのを修正
存在しないユーザのtimelineを取得しようとすると非同期実行される関数が
エラーを起こしてしまっていましたので、修正しました。
2.0.0: 2011-04-22
------------------
### 重要なお知らせ
### 改良
* OAuth, xAuthで取得した認証済みaccess tokenの暗号化保存に対応
認証済みaccess tokenをGnuPGで暗号化して保存することができます。
tokenを保存しておけば、次回以降の起動時にOAuthのための外部
ブラウザ起動やPIN入力等の手続きは必要なくなります。代わりに暗号化を
解くためのpassphraseを入力してください。
この機能は"(setq twittering-use-master-password t)"とすれば有効に
なります(デフォルトでは無効です)。
暗号化された秘密情報はデフォルトでは`~/.twittering-mode.gpg'に記録
されますがこの保存先は変数`twittering-private-info-file'で変更可能
です。
この機能を有効にするには外部プログラムGnuPGに加えてEmacs LISPプロ
グラム`alpaca.el'かEasyPGが必要です。Emacsは23以降であればEasyPGを
同梱していますので追加のEmacs LISPプログラムは必要ありません。
`alpaca.el'はversion 0.13を想定していますので、他のversionでは動作に
問題がある恐れがあります。
* xAuthのサポート
OAuth認証の他にxAuthによる認証にも対応しました。xAuthによる認証を
有効にするには"(setq twittering-auth-method 'xauth)"の設定を追加して
ください。
* PINコード入力時に不必要な空白を自動で削除
* 起動した外部プロセスのstatusを確認してdead-lockを回避
* `user', `friends', `mentions', `public'でもnative retweetを表示
* 起動した外部プロセスの異常終了を検出
異常終了したプロセスのexit-statusは"*Messages*"バッファで確認できます。
* HTTPS通信でのサーバ認証の無効化に対応
サーバ認証はデフォルトでは有効ですが、これを無効化することもできる
ようになりました。"(setq twittering-allow-insecure-server-cert t)"の
設定でHTTPS通信時にもサーバ認証を行わなくなります。
* 未知の数値文字参照を代替文字で置換
decodeできない数値文字参照が現れたときにその文字を変数
`twittering-unicode-replacement-char'で指定された文字に置換して表示
します。代替文字のデフォルトはU+FFFDです。
* サブディレクトリに`.nosearch'を追加
必要のないサブディレクトリが再帰的に`load-path'に追加されるのを防ぎ
ます。
* 初期timelineを複数設定している場合の認証情報入力回数を1回に変更
* byte-compile後のclライブラリへの依存を解消
* 内蔵しているCA証明書を更新
内蔵しているCA証明書を`Equifax Secure Certificate Authority'で置き
換えました。
* StatusNetモードをサポート
`twittering-mode.el'をStatusNet用に切り替えられるようになりました。
"(setq twittering-service-method 'statusnet)"という設定で切り替わ
ります。TwitterとStatusNetを同時に使うことはできませんので注意して
ください。
StatusNet向けに使うにはホスト情報の設定も必要になります。
`http://identi.ca/'でのサービスの場合、以下のような設定が必要です。
(setq twittering-service-method 'statusnet)
(setq twittering-auth-method 'basic)
(setq twittering-username "YOUR-ACCOUNT-NAME")
;; host
(setq twittering-api-host "identi.ca")
(setq twittering-api-search-host "identi.ca")
(setq twittering-web-host "identi.ca")
;; paths for API
(setq twittering-api-prefix "api/")
(setq twittering-search-api-method "api/search")
(setq twittering-web-path-prefix "")
* "U"でtweet中のURIやそのtweet自体へのURIをコピー
Thanks to Faried Nawaz.
* "C-<mouse-3>"でtweetをコピー
Thanks to Faried Nawaz.
* wgetによるtweet取得に対応
Twitterサーバとの通信に外部プログラムwgetを使えるようになりました。
下記の設定でwgetが優先して使われるようになります。
(setq twittering-connection-type-order '(wget curl native))
* 現在の通信方法(connection method)をモードライン上に表示
デフォルトで現在の通信方法(connection method)がモードライン上に表示
されます。下記の設定で表示しないようにもできます。
(setq twittering-display-connection-method nil)
* アイコン取得時の情報表示をデフォルトで抑制
`twittering-url-show-status'のデフォルト値がnilに変更されました。
デフォルトではアイコン取得時の情報は表示されなくなります。
* urlライブラリによるtweet取得に対応
通信方法(connection method)として`urllib-http'と`urllib-https'を追加
しました。`native'とは異なりHTTP redirectionもサポートしていますが
動作は遅く、また不安定になる場合もあるようです。他のmethodが利用できる
場合にはそちらを用いることを推奨します。
`urllib-http',`urllib-https'を用いてのBASIC認証,xAuthで間違ったアカウ
ント情報を与えるとurlライブラリの機能で再入力を求められますが、再入力
した情報で通信を続行することはできません。再入力を求められたときはC-g
でキャンセルし、改めてM-x twitを実行してください。
* ユーザからの入力待ち状態になってから再描画
時刻やアイコン画像の表示のためのtweetの再描画を、Emacsがユーザからの
入力待ち状態(idle状態)に入り、その状態が一定時間継続してから行うように
しました。待ち時間は変数`twittering-timer-interval-for-redisplaying'で
指定できます。デフォルトの待ち時間は1秒です。
* curlやwgetでのアイコン画像取得に対応
アイコン画像の取得にtweet取得と同じ通信方法(connection method)が使える
ようになりました。各methodの優先順位はtweet取得と同じく変数
`twittering-connection-type-order'で決定されます。
* アイコン画像変更プログラムの遅延呼び出し
アイコン画像を指定されたサイズに変更するためのプログラム(convert)実行
をEmacsがユーザからの入力待ち状態(idle状態)になって一定時間が経過して
から行うようにしました。待ち時間は変数
`twittering-url-request-sentinel-delay'で指定できます。デフォルトの
待ち時間は1秒です。
* 「お気に入り」に対応
「お気に入り」一覧を表示するtimeline specとして":favorites"と
":favorites/USER"を追加しました。":favorites/USER"で指定したユーザの
「お気に入り」を見ることができます。`twittering-visit-timeline'(デフォ
ルトでは"V"にbindされています)に対して":favorites/"と入力してEnter
すると、続いてユーザ名を補完入力できます。「お気に入り」は元々のtweetの
投稿時刻の順に表示されるので注意してください。これは「お気に入り」に
登録した時刻を取得する方法がないためです。また、取得できる「お気に入
り」は最大20件です。より過去にさかのぼっての取得は未対応です。
* 新たにいくつかの短縮URL生成サービスに対応
新たに`bit.ly', `goo.gl', `is.gd', `j.mp'に対応しました。下記のような
設定で有効にできます。
(setq twittering-tinyurl-service 'bit.ly) ;; bit.lyの場合
(setq twittering-tinyurl-service 'goo.gl) ;; goo.glの場合
(setq twittering-tinyurl-service 'is.gd) ;; is.gdの場合
(setq twittering-tinyurl-service 'j.mp) ;; j.mpの場合
`bit.ly'や`j.mp'を使うにはお持ちのアカウントに応じて下記のように
`twittering-bitly-login'と`twittering-bitly-api-key'を設定しておく必要が
あります。
(setq twittering-bitly-login "YOUR-LOGIN-NAME")
(setq twittering-bitly-api-key "YOUR-API-KEY")
Thanks to Michael Kohl and Lars Gregori.
* 公式ReTweetについての書式指定子"%c","%C","%@"の意味を変更
公式ReTweetの`created_at'は、retweetした時刻ではなくオリジナルの
tweetを投稿した時刻を意味するようになりました。
* spam送信者報告機能
関数`twittering-block-and-report-as-spammer'を追加しました。tweet上で
この関数を呼び出すと、その投稿者をブロックし、さらにspam送信者として
報告できます。
* ブロック機能
関数`twittering-block'を追加しました。tweet上でこの関数を呼び出すと、
その投稿者をブロックできます。
* アイコン画像保存機能
"(setq twittering-use-icon-storage t)"とすることで一度取得・サイズ変
更したアイコン画像を専用のファイルに保存しておけるようになりました。
この機能はデフォルトでは無効です。次回以降は専用ファイルに格納された
画像が優先的に使われますのでアイコン取得・サイズ変更にかかる時間が省
けます。
デフォルトでは直近に描画されたアイコンを最大500個まで保存します。保
存されるアイコンの個数は変数`twittering-icon-storage-limit'で変更で
きます。この変数をnilに設定すると全てのアイコンが保存されます。
アイコンを保存するファイルはデフォルトでは
`~/.twittering-mode-icons.gz'ですが`twittering-icon-storage-file'と
いう変数で変更できます。あるバージョンのEmacsで生成したアイコン保存
ファイルは別のバージョンでは使えない恐れがあるので注意してください。
* 新しい書式指定子"%RT{...}"
`twittering-status-format'で使える書式指定子として"%RT{...}"が追加さ
れました。これは対象となるtweetが公式RTのときだけ描画されます。括弧
の中には任意の文字列と書式指定子を入れることができ、括弧内の書式指定
子はRTされたtweetではなくそのRT自身の情報を使って描画されます。例え
ば、"%RT{%s}"はRTしたユーザのscreen_nameとなります。
* 公式ReTweetのキャンセル
自分自身が投稿した公式ReTweetをtweet削除と同じ操作(デフォルトで
は'C-cD')でキャンセルできるようになりました。
* あるユーザがフォローしているリストの補完付き選択機能
'C-uL'で特定ユーザがフォローしているリストを補完付きで選択し、開ける
ようになりました。
* Edit skeleton
投稿内容編集開始時に状況に応じて自動的に文字を追加できる仕組みを導入
しました。edit skeletonはいつ、どのような文字列を先頭に、あるいは末
尾に追加するかの規則です。連想リスト`twittering-edit-skeleton-alist'
に要素を追加することで、新しいedit skeletonを定義できます。edit
skeletonの定義方法の詳細については`twittering-edit-skeleton-alist'の
docstringを参照ください。
デフォルトでは以下のedit skeletonが定義されています。
none: 何も追加しません。
footer: `twittering-edit-skeleton-footer'で指定された文字列をフッタ
として末尾に追加します。
footer-only-normal: footerと同様ですがreplyやdirect messageを編集す
る際には追加を行いません。
inherit-hashtags: 返信先に含まれるハッシュタグを末尾に追加します。
inherit-mentions: 返信先に含まれるユーザ参照を先頭に追加します。
inherit-any: 返信先に含まれるハッシュタグやユーザ参照を追加します。
関数`twittering-switch-edit-skeleton'で有効なedit skeletonを切り替え
るにはことができます。
また、フッタ文字列`twittering-edit-skeleton-footer'の内容は関数
`twittering-edit-skeleton-change-footer'で変更できます。
* 代替画像形式を指定する変数
アイコン画像の形式がEmacsにサポートされていない形式である場合、画像
をEmacsがサポートする形式に変換してから表示するのですが、その際の変
換先の画像形式を指定する変数`twittering-fallback-image-format'を追加
しました。デフォルトの形式はXPMです。
下記のように設定すれば、NTEmacsでXPMを表示する際の不自然な挙動を回避
できるかもしれません。 Thanks to Silver Chariot.
(setq twittering-fallback-image-format 'png)
### バグ修正
* Emacs 23以降に同梱されているurlライブラリでも正しく動くよう修正
* 外部コマンドcURLでbodyが空のPOSTを正しく行えるよう修正
* Native retweetをさらにretweetできるよう修正
オリジナルのtweetへのretweet扱いになります。
* アカウント認証時に発生する可能性のあった競合状態が起こらないよう修正
* 返信先として表示されているtweetへの返信を正しく扱うよう修正
`twittering-show-replied-statuses'で返信先として表示されているtweetに
対して`twittering-enter'で返信したときに、カーソル下のtweetに対する
返信となるよう修正しました。
Thanks to Naohiro Aota.
* 書式指定子"%L"の振舞いを修正
`twittering-status-format'のdocstringの通りに空白が挿入されるように
なりました。
Thanks to Tom X. Tobin.
* アイコン画像取得の際に同一sentinelを複数回登録していたのを修正
1.0.0: 2010-06-05
------------------
### 重要なお知らせ
#### ミニバッファからの投稿はサポート廃止予定です
twittering-modeでtweetを投稿するには、これまではミニバッファから入力す
る方法を採用していましたが、今回新機能としてポップアップバッファから投
稿できる機能を実装しました。変数 `twittering-update-status-function` を
設定することによってこの2つの方法を切り替えることができます。今回のリリー
スでは、新しいポップアップバッファがデフォルトに設定されています。従来
通りミニバッファから投稿したい場合は、この変数の値を
twittering-update-status-from-minibuffer に設定してください。
ポップアップバッファによる投稿では、従来の投稿方法に比べて次のような利
点があります:
* tweet入力時にIME等と干渉しない
* 入力途中で誤って投稿してしまうミスがおきにくい
* 入力内容の文字数を表示してくれる
### 改良
* ポップアップバッファを用いたtweetの編集、投稿機能
* 環境変数 http_proxy, HTTP_PROXY を利用した自動プロキシ設定
* 公式ReTweetサポート
* タイムライン表示のフォーマット指定子に新たなものを追加
* 一時ファイルを生成しない画像ファイル表示方法を採用
* 'timeline spec'導入による柔軟なタイムライン表示機能
* 'timeline spec'導入による複数タイムライン・複数バッファ表示のサポート
* `twittering-initial-timeline-spec-string'を設定することで、初期化時
に複数のタイムラインを表示させることが可能
* 自動更新のon/offをサポート(キーボードの'a'で切り替え)
* global-font-lockモードとの親和性向上
* モードラインでの未読通知 (experimental)
* フォーマット指定子 "%FILL{...}" の修正
* タイムラインの切り替え機能(キーボードの 'f' と 'b' で切り替え)
* SSLの有効/無効をモードラインの画像で表示
* アイコン画像の非同期な取得と表示
* tweetの削除機能('C-cD' で削除)
* 'gnutls', 'openssl'コマンドを利用したtlsライブラリによるHTTPS通信
* HTTPとHTTPSに個別のプロキシを設定可能に
* 画像取得時の出力を抑制
* .emacs に (setq twittering-url-show-status nil) を追加することで有
効にできる
* OAuth認証対応
0.9: 2009-12-29
-----------------
### 改良
* GitHubへ移動
* 英語と日本語でWebサイトを開設
* cURLが利用可能なときはHTTPSを使ってセキュアに通信するように
* リスト対応
* フォロー/リムーブ対応
* お気に入り機能に対応
* ハッシュタグ対応
* ダイレクトメッセージ送信に対応
* URLをその場でTinyURL化する機能
* 入力文字列の文字数チェック
* ReTweetの形式を選択可能に
* 閲覧したユーザー名や、送信したつぶやきの履歴を保存
* 一度に取得するつぶやきの数をパラメータ化
* ユーザー名やURLなどの要素をTABキーで移動可能に
* 'file'コマンドを利用した画像の種類の判別
* よりわかりやすいエラー出力
* 取得済みのタイムラインのデータを保持するように
* サスペンド機能
* Imagemagickが利用可能なときは画像のリサイズを行うように
* 単体テストフレームワークの導入
* 'Proxy-connection: Keep-Alive'への対応
* 柔軟な文字列フォーマット関数の導入(twittering-format-string)
* HTTPレスポンス処理の効率改善
### バグ修正
* マウスクリックやEnterキーでURLを開けない問題を修正
* ReTweetのときはオリジナルIDを設定しないように
* URL抽出の正規表現を修正
* ユーザー名抽出の処理を修正
* モードラインを即時更新するよう修正
* 各HTTPセッションごとに一時バッファを利用するよう変更
* MD5ハッシュを利用して同じ名前の画像ファイルの衝突を回避
* センティネルでバッファをkillする際のエラー処理
* いくつかの誤字修正
### 感謝
* Alberto Garcia
* Jaemok Jeong
* Kouhei Sutou
* Naohiro Aota
* Satoshi Yatagawa
* Tadashi MATSUO
* Thomas Danckaert
* Tsuyoshi CHO
* IMAI Toshiyuki