操作
バグ #939
完了openイベントで、URIに対応するModelが見つからなかった時にもintentが呼ばれてしまう
プラグイン名:
ブランチ:
クラッシュする:
説明
存在しないツイートを開こうとすると以下のエラーで落ちます。
/home/osak/app/mikutter/core/plugin/message_detail_view/message_detail_view.rb:6:in `block (2 levels) in <top (required)>': undefined method `uri' for nil:NilClass (NoMethodError) from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/listener.rb:25:in `call' from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:97:in `block (2 levels) in call_all_listeners' from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:96:in `each' from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:96:in `block in call_all_listeners' from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:95:in `catch' from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:95:in `call_all_listeners' from /home/osak/.gem/gems/pluggaloid-1.1.1/lib/pluggaloid/event.rb:39:in `block in call' from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run' from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once' from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run' from /home/osak/.gem/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing' from /home/osak/app/mikutter/core/plugin/gtk/delayer.rb:10:in `block in boot' from /home/osak/app/mikutter/core/plugin/gtk/mainloop.rb:10:in `main' from /home/osak/app/mikutter/core/plugin/gtk/mainloop.rb:10:in `mainloop' from mikutter.rb:65:in `boot!' from mikutter.rb:94:in `<main>'
toshi_a 初音 さんが約8年前に更新
- 題名 を 存在しないツイートを開くと落ちる から openイベントで、URIに対応するModelが見つからなかった時にもintentが呼ばれてしまう に変更
- 担当者 を toshi_a 初音 にセット
Intent側の問題だということがわかったのでタイトルを抽象的なかんじにしておきました
以下のコードをmikutter上で実行すると再現できます。
Plugin.call(:open, 'https://twitter.com/takahyy/status/724609897170497536')
toshi_a 初音 さんが約8年前に更新
- ステータス を 新規 から 終了 に変更
他のIntentであれば開けるかも知れない(Webなんかは、404ページだが一応開ける)ということで、Modelを取得できなかった場合はforwardするようにしました。
結果として、vanillaの状態では「ツイートの詳細」を選んでも、結局Webブラウザが立ち上がって、そのツイートは存在しないと表示されるようになりました。
操作