mikutterの最新の情報は、mikutter blogに引っ越しました。

2015年10月11日日曜日

mikutter 3.3の新機能

mikutter 3.3の季節がやってきました。暖めていたらそのうち年を越しそうなので、まだ全部終わってないですが先にやったこと(+やる予定のこと)を公開しようと思いました。いくつか、やるかわからないので書いてないこと・忘れてるので書いてないことがあります。そういうのはちょくちょく追記していきます。

コードの分離

mikutterのプラグインシステムはmikutter自体からは削除され、Pluggaloid gem に置き換えられました。これは、いくつかのパフォーマンスチューニングと機能追加を行い、mikutterに特化した機能を削除した汎用的なgemです。今後プラグインシステムはmikutterと別々に開発が進むことになります。

Pluggaloid gemが依存しているInstance Storage、Deferredも同様に分離されました。




Retweeted Retweet

Twitterではリツイートをリツイートできるようになりました。自分のリツイートをリツイートされた場合、mikutterのRTインジケータにもこれが表示されます。

Quoted Tweet

Twitterでは、ツイートに別のツイートのパーマリンクを埋め込むことで、ツイートに言及できるようになりました。Twitter公式クライアントでは「コメント付きリツイート」という名前になっています。
サードパーティプラグインではすでにこれに対応するものがありましたが、今回からこのプラグインが「quoted_tweet」プラグインとしてバンドルされるようになりました。機能的には元となったnested_quoteプラグインにいくつか付け加えただけなので、mikutter 3.3になったらnested_quoteプラグインを入れている人は外してください。

引用ツイートを表示する

タイムライン上に次のように表示されます。Twitterとは違い、複数のパーマリンクにも対応しています。



引用ツイート

   引用したいツイートからmikutterコマンド「ツイートを引用」を選べば、画面上部の投稿内容入力ボックスに新しく、末尾にパーマリンクが入力された状態の投稿内容入力ボックスが現れます。
   もちろん、複数選択した場合はそれら全てが入力された状態になります。当然あまりたくさんを一度に引用し過ぎると文字数制限にひっかかるのでご注意を。

ツイートのURLをコピー

ツイートのパーマリンクをクリップボードにコピーします。

複数のツイートを選択しておけば、それら全てのパーマリンクを改行で区切った状態でコピーできます。Togetter等にまとめたり、他人のツイートを言質に取るために有用です。

引用データソース

自分のツイートが引用された時、それだけが流れてくるデータソースが追加されます。複数アカウントで運用しているときは、各アカウントごとのデータソースも追加されます。

スマートスレッド(会話)


スマートスレッドは、従来のin_reply_to_statusの関係だけではなく、引用ツイートも抽出します。

まず従来の方法で取得したツイートの本文に含まれるツイートのURLを探します。そしてそのURLが示すツイートもスレッド内に展開します(引用ツイート)。

更に、mikutterでは引用されているツイートもこの対象に含みます。すなわち、スレッド内にあるツイートのうちどれかを引用しているツイートも、会話スレッドから見ることができます。

非公開アカウント・公式アカウント

設定で、非公開アカウントのツイートに常にアイコンを表示したところ
特に意味のない全部乗せがTwitterを襲う


Twitterを長く続けていると、あの人もこの人も就職して非公開アカウントになっていきます。鍵垢は甘えなのは言うまでもないですが、こうも増えたらそうも言ってられないようになってきました。
アイコンオーバーボタンのリツイートは、投稿者が非公開アカウントだった場合に南京錠のマークに変わり、クリックできなくなります。
また、「設定→表示→非公開アカウント→非公開アカウントのつぶやきにはアイコンを表示」のチェックを有効にすることで、マウスをアイコン上に載せていない間もこのマークを常に表示する設定もできます。TL上でその人が非公開アカウントかどうかを常に確認できるわけです。

また、Twitter社から承認された公式アカウントの場合は、まりもがコバルトブルーに変わってチェックマークがつきます。これも非公開アカウントの場合と同様に、マウスオーバー中のみ表示、常時表示を切り替えることができます。

比較的正確な文字数カウント

「d250g2.com」の部分がURLとして認識され、見た目より長く扱われている

ツイートは140文字までですが、TwitterはURLを冗長化する機能があるため、正確な文字数はクライアントサイドで測ることができません。URLの区切りが確かではないからです。そこでmikutter3.3では、Twitter社がメンテナンスしているtwitter-text gemを利用して、URLの判定を行うようにしました。
当然これが現在のTwitterのURL検出アルゴリズムと一致する保証はないので、mikutterでは引き続き、字数オーバーしていても投稿は行えるようになっています。Twitter APIサーバから字数オーバーと言われたら、観念してゴルフをしましょう。

コマンドラインからアカウント追加が可能に

mikutter 3ではGUIを使わない場合にアカウント登録をする良い方法がありませんでしたが、以下のようなコマンドでmikutterにTwitterアカウントを追加できるようになりました。

$ mikutter account

これで、botをサーバに設置する時に楽ができるようになったと思います。

一部メソッドのリネーム

今まで、typoや勘違いでつけてしまった間違ったメソッド名などはエイリアスで対応していて、いちいちアナウンスもしてなかったのですが、今回からは古い名前で呼び出すとstderrに警告を表示するようにしました。
今回は以下のメソッドがdeprecateになっています。
  • Message#parma_link → Message#perma_link (typo)
  • 様々なクラスのregist → register (Janglish)
尚、過去にリネームしたメソッドを呼び出しても特に何も表示されません。調べるのが大変だったので。上記メソッドを使っている場合は、新しいメソッドを使うように変更してください。プラグインが移行しやすいように、これらの変更はmikutter 3.2.11にバックポートしました。

mikutterコアのデバッグ出力のポリシー

他の警告がわかりやすいようにnoticeレベルのエラーメッセージの大半を廃止しています。

リリース時期

まだ厳密には決まってません。期限を切るよりは、ここに書いたことを全部実装したいです。
とはいっても前回から随分リリースが空いていて、引用ツイート等も今回から漸く正式にサポートしているため、正式なリリースが私に渇望されている状況です。そのことを考えると、10月中にαリリースを行おうと思います。そこに間に合わないと、クリスマスリリースになるので…。