プロジェクト

全般

プロフィール

機能 #1038

TLに表示するツイート上限数をユーザー設定で変更可能にしたい

Izumi Tsutsui約1年前に追加. 7ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
開始日:
2017-05-06
期日:
進捗率:

0%

プラグイン名:

説明

現状の表示ツイート数上限は magic number で埋め込んである以下の数字だと思います。

source:core/mui/cairo_timeline.rb@27049201#L168

  # TLのMessageの数が上限を超えたときに削除するためのキューの初期化
  # オーバーしてもすぐには削除せず、1秒間更新がなければ削除するようになっている。
  def init_remover
    @timeline_max = 200
    @remover_queue = TimeLimitedQueue.new(1024, 1){ |messages|
      Delayer.new{
        if not destroyed?
          remove_count = size - timeline_max
          if remove_count > 0
            to_enum(:each_iter).to_a[-remove_count, remove_count].each{ |iter|
              tl_model_remove(iter) } end end } } end

とりあえず感がありますが、上記の 200 の数字を userconfig で変更可能なようにするという案はどうでしょう?

200という数字は mikutter 黎明期になんとなくで決められた値のように見えます。
https://twitter.com/toshi_a/status/9691075197

リビジョン12をコミットしました:
タイムライン上のつぶやきの完璧なソート
長すぎるつぶやきの末尾を切って投稿
メモリ節約のため、200個以上前のつぶやきを非表示に
READMEの後進を忘れなかった
明日起きれるか心配になった
#mikutter
3:48 - 2010年2月27日

どんなもんでしょう。


関連するチケット

関連している 機能 #1081: タイムラインに表示するMessageの件数を、プラグインがタイムラインを生成するときに個別に設定できるようにする新規2017-11-12

関係しているリビジョン

リビジョン 11f2465e (差分)
あひる 家鴨7ヶ月前に追加

timeline_max を UserConfig 経由で設定できるように変更 refs #1038

設定 -> 表示 から変更可能

履歴

#1 toshi_a 初音約1年前に更新

  • 対象バージョン3.5 から 3.6 に変更

賛成です。
200という数字の根拠は、当時Twitter APIで各種タイムラインを取得する時に、1ページの最大件数が200だったことに由来していたと記憶しています。
cairoを使った現在の実装だと、一度表示されたことのある画像がメモリ上に残るが、処理速度的にはペナルティは少ないと思うので、よりスペックの高い環境であればこれを増やすことが出来ると便利そうです。

3.5からは、filerプラグインのように200以上のModelを常に保持するのが正当なケースも出てきたので、UIDSLのtimelineメソッドで、プラグインがタイムラインを生成する時に最大件数を設定できるようにしようと思います。これのデフォルト値は、UserConfigに記録しておいて、エンドユーザが設定できるようにすると良いでしょう。

#2 Izumi Tsutsui9ヶ月前に更新

本題とは全然関係ないんですが、チケットを書いていた時に探してたツイートを発掘したので貼っておきますね
https://twitter.com/toshi_a/status/9579617772

きめた!大体200件くらいでつぶやきを消す!今は、ね。 #mikutter
0:14 - 2010年2月25日

#3 toshi_a 初音9ヶ月前に更新

卑怯だぞ!!!

#4 あひる 家鴨7ヶ月前に更新

明日やります

#5 あひる 家鴨7ヶ月前に更新

明日は来ました。

topic/1038-changeable-timeline-max です。
確認をお願いします。

#6 Izumi Tsutsui7ヶ月前に更新

あひる 家鴨 さんは書きました:

明日は来ました。

この履歴が書かれたのが日付変わった 11/12 だったのでどうかなと思っていました(どうでもいい)

topic/1038-changeable-timeline-max です。
確認をお願いします。

パッケージ環境なのでどうテストしようかと思案して
インストール済みの 3.5.13 の環境に対して
11f2465e の修正を手で変更する
という暴挙で確認しましたが、とりあえず意図通り動いていて
200以上のツイート表示もできているようです。(添付)

ステータスが新規のままですが、通常ユーザーだと終了か却下にしか変えられないみたいなので
適当に更新お願いします。

確認方法メモ
https://twitter.com/toshi_a/status/929632483687067648

@tsutsuii TL全選択して、「ツイートのURLをコピー」コマンドを実行して、エディタに貼り付けて行数を測ればすぐわかりますよ

蛇足

実装設計的なところはよくわかっていませんが、履歴#1のとしぁさんコメント通りの実装ということですよね。
タブごとに表示件数を変える、みたいな要件があるのかな、ということも思っていました。

#7 toshi_a 初音7ヶ月前に更新

確認しましたが、これで一度developにmergeで良いと思います。
タイムラインごとに最大数を設けるのは、今後の課題とします。

#8 toshi_a 初音7ヶ月前に更新

  • 関連している 機能 #1081: タイムラインに表示するMessageの件数を、プラグインがタイムラインを生成するときに個別に設定できるようにする を追加

#9 あひる 家鴨7ヶ月前に更新

developにマージ完了したのでcloseします。

#10 あひる 家鴨7ヶ月前に更新

  • ステータス新規 から 終了 に変更

他の形式にエクスポート: Atom PDF