Project

General

Profile

Actions

バグ #1208

closed

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

Added by Izumi Tsutsui over 6 years ago. Updated over 6 years ago.

Status:
終了
Priority:
通常
Target version:
プラグイン名:
rest
クラッシュする:
No

Description

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

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

Actions #1

Updated by Izumi Tsutsui over 6 years ago

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

Actions #2

Updated by Izumi Tsutsui over 6 years ago

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 取得しない、とかいう書き方が必要? (よくわかっていない)

Actions #3

Updated by Izumi Tsutsui over 6 years ago

参考情報

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

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

Actions #4

Updated by toshi_a 初音 over 6 years ago

  • Status changed from 分類待ち to 実装待ち

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

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

Actions #5

Updated by Izumi Tsutsui over 6 years ago

とりあえず以下のパッチ(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 ってどこで呼ばれるのでしょう、とかわかっていません……。

Actions #6

Updated by toshi_a 初音 over 6 years ago

  • Status changed from 実装待ち to レビュー待ち
  • Assignee set to Izumi Tsutsui
  • プラグイン名 set to rest
  • ブランチ set to topic/1208-frozen-timeline

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

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

Actions #7

Updated by Akira Ouchi over 6 years ago

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

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

Actions #8

Updated by Izumi Tsutsui over 6 years ago

  • Status changed from レビュー待ち to マージ待ち
  • Assignee changed from Izumi Tsutsui to toshi_a 初音

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

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

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

Actions #9

Updated by toshi_a 初音 over 6 years ago

  • Status changed from マージ待ち to 終了

masterにmergeしました。

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

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

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

Actions

Also available in: Atom PDF