プロジェクト

全般

プロフィール

バグ #1208

mikutter 3.6.6 で起動時に main TL とリプライが取得されない

Izumi Tsutsui6ヶ月前に追加. 6ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
rest
ブランチ:
topic/1208-frozen-timeline
クラッシュする:
いいえ

説明

題名の通り、 mikutter 3.6.6 にしたあと、起動時に main TL とリプライが取得されないようです。
あっきぃさんも同様のことを書いていました。
https://social.mikutter.hachune.net/@akkiesoft/99881451356273491

予想として #1169 の修正の 70b2dd95 の副作用という気はしますが
これから確認してみます。
(#1206 のブランチでのテストの時は問題なかった)

関係しているリビジョン

リビジョン 04106332 (差分)
toshi_a 初音6ヶ月前に追加

rest: ポーリングを行っていなかった refs #1208

履歴

#1 Izumi Tsutsui6ヶ月前に更新

3.6.6 の checkout に対して git revert 70b2dd95 すると起動時のTLは表示されるようです。

#2 Izumi Tsutsui6ヶ月前に更新

Izumi Tsutsui さんは書きました:

3.6.6 の checkout に対して git revert 70b2dd95 すると起動時のTLは表示されるようです。

70b2dd95source:core/plugin/rest/rest.rb@70b2dd95 だけ
source:core/plugin/rest/rest.rb@0b09d084 に戻すと
起動時の main TL と mention とも表示されます。

#1169 での world_after_created の追加に伴い rest の Delayer の呼び出し方も変わっているようですが、
world_after_created 発生時に限らずすでに world 作成済みだったら rest 取得する、とする一方で、
world未作成時は rest 取得しない、とかいう書き方が必要? (よくわかっていない)

#3 Izumi Tsutsui6ヶ月前に更新

参考情報

https://social.mikutter.hachune.net/@toshi_a/99883500890810291

Akira Ouchi 心当たりあるっちゃあるので、パッチなしでも良いので詳しい状況書いといてくれ
2018年4月19日 10:27

#4 toshi_a 初音6ヶ月前に更新

  • ステータス分類待ち から 実装待ち に変更

#1208-3 の発言をしたことを全く憶えていない

私のアカウントが凍結されているのが原因だと思っていましたが、凍結されていなくてもこのような状態になるということですね。

#5 Izumi Tsutsui6ヶ月前に更新

とりあえず以下のパッチ(rest.rb を戻す + on_word_after_created は使う)を当てると
main TL と リプライ(メンション)のタブは起動時から表示されます。

diff --git a/core/plugin/rest/rest.rb b/core/plugin/rest/rest.rb
index 037f3ab7..fa2b4ddb 100644
--- a/core/plugin/rest/rest.rb
+++ b/core/plugin/rest/rest.rb
@@ -23,21 +23,21 @@ Plugin.create :rest do
     Plugin.call(:mypost, service, messages.select{ |m| m.from_me? }) end

   def start
-    Delayer.new do
-      if Service.instances.empty?
-        @account_observer ||= on_world_after_created do |_new_world|
-          start
-          @account_observer.detach
-          @account_observer = nil
-        end
-      else
-        Service.instances.each do |service|
-          @crawlers.each{ |s| s.call(service) }
-        end
-        Reserver.new(60, thread: Delayer) do
-          start
-        end
+    if Service.instances.empty?
+      @account_observer ||= on_world_after_create do |_new_world|
+        start
+        @account_observer.detach
+        @account_observer = nil
+      end
+    else
+      Service.instances.each do |service|
+        @crawlers.each{ |s| s.call(service) }
+      end
+      Reserver.new(60, thread: Delayer) do
+        start
       end
     end
   end
+
+  Delayer.new{ start }
 end

そもそも start ってどこで呼ばれるのでしょう、とかわかっていません……。

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

  • ステータス実装待ち から レビュー待ち に変更
  • 担当者Izumi Tsutsui にセット
  • プラグイン名rest にセット
  • ブランチtopic/1208-frozen-timeline にセット

つついさんのパッチを見て何が悪いか分かってしまったので、もらったパッチとは違う方法で解決したものをpushしました。
問題自体は、起動時にというか、完全にREST APIへの定期的な問い合わせが止まっていたと思われます。

やはり凍結されるとだめですね、凍ってない人が気の毒でなりません。

#7 Akira Ouchi6ヶ月前に更新

つついさんじゃないですが確認しました。

#1214 の作業中にworld_primaryプラグインが動作していないなと思っていたのですが、
#1208 の修正で回復したようです。関係あるのかしら……?

#8 Izumi Tsutsui6ヶ月前に更新

  • ステータスレビュー待ち から マージ待ち に変更
  • 担当者Izumi Tsutsui から toshi_a 初音 に変更

pkgsrc の mikutter 3.6.6 で 04106332 の差分を当てて起動時にTL一式取得されることを確認しました。

そもそも start ってどこで呼ばれるのでしょう、とかわかっていません……。

これから差分が想像できるくらいのスキルを身に着けたい(ヽ´ω`)

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

  • ステータスマージ待ち から 終了 に変更

masterにmergeしました。

そもそも start ってどこで呼ばれるのでしょう、とかわかっていません……。

これから差分が想像できるくらいのスキルを身に着けたい(ヽ´ω`)

これはめっちゃ恥ずかしい…凍結されて無ければ事前に気づけていたのに(言い訳)

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