バグ #1208
closedmikutter 3.6.6 で起動時に main TL とリプライが取得されない
Description
題名の通り、 mikutter 3.6.6 にしたあと、起動時に main TL とリプライが取得されないようです。
あっきぃさんも同様のことを書いていました。
https://social.mikutter.hachune.net/@akkiesoft/99881451356273491
予想として #1169 の修正の 70b2dd95 の副作用という気はしますが
これから確認してみます。
(#1206 のブランチでのテストの時は問題なかった)
Updated by Izumi Tsutsui over 6 years ago
3.6.6 の checkout に対して git revert 70b2dd95 すると起動時のTLは表示されるようです。
Updated by Izumi Tsutsui over 6 years ago
Izumi Tsutsui さんは書きました:
3.6.6 の checkout に対して git revert 70b2dd95 すると起動時のTLは表示されるようです。
70b2dd95 の source: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 取得しない、とかいう書き方が必要? (よくわかっていない)
Updated by Izumi Tsutsui over 6 years ago
参考情報
https://social.mikutter.hachune.net/@toshi_a/99883500890810291
Akira Ouchi 心当たりあるっちゃあるので、パッチなしでも良いので詳しい状況書いといてくれ
2018年4月19日 10:27
Updated by toshi_a 初音 over 6 years ago
- Status changed from 分類待ち to 実装待ち
#1208-3 の発言をしたことを全く憶えていない
私のアカウントが凍結されているのが原因だと思っていましたが、凍結されていなくてもこのような状態になるということですね。
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 ってどこで呼ばれるのでしょう、とかわかっていません……。
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への定期的な問い合わせが止まっていたと思われます。
やはり凍結されるとだめですね、凍ってない人が気の毒でなりません。
Updated by Akira Ouchi over 6 years ago
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 ってどこで呼ばれるのでしょう、とかわかっていません……。
これから差分が想像できるくらいのスキルを身に着けたい(ヽ´ω`)
Updated by toshi_a 初音 over 6 years ago
- Status changed from マージ待ち to 終了
masterにmergeしました。
そもそも start ってどこで呼ばれるのでしょう、とかわかっていません……。
これから差分が想像できるくらいのスキルを身に着けたい(ヽ´ω`)
これはめっちゃ恥ずかしい…凍結されて無ければ事前に気づけていたのに(言い訳)