プロジェクト

全般

プロフィール

バグ #939

openイベントで、URIに対応するModelが見つからなかった時にもintentが呼ばれてしまう

Osamu Koga11ヶ月前に追加. 11ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2016-11-27
プラグイン名:

説明

存在しないツイートを開こうとすると以下のエラーで落ちます。

/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>'

再現手順

  1. https://twitter.com/takahyy/status/724609897170497536 を何らかの手段(ツイート中のリンクをクリックする等)で開く

関係しているリビジョン

リビジョン 1810be60 (差分)
toshi_a 初音11ヶ月前に追加

intent: intentブロックを呼び出す時にModelを取得できなかったら別の手段で開くことを試みる refs #939

履歴

#1 Osamu Koga11ヶ月前に更新

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

#2 toshi_a 初音11ヶ月前に更新

  • 題名存在しないツイートを開くと落ちる から openイベントで、URIに対応するModelが見つからなかった時にもintentが呼ばれてしまう に変更
  • 担当者toshi_a 初音 にセット

Intent側の問題だということがわかったのでタイトルを抽象的なかんじにしておきました

以下のコードをmikutter上で実行すると再現できます。

Plugin.call(:open, 'https://twitter.com/takahyy/status/724609897170497536')

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

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

他のIntentであれば開けるかも知れない(Webなんかは、404ページだが一応開ける)ということで、Modelを取得できなかった場合はforwardするようにしました。
結果として、vanillaの状態では「ツイートの詳細」を選んでも、結局Webブラウザが立ち上がって、そのツイートは存在しないと表示されるようになりました。

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