プロジェクト

全般

プロフィール

バグ #1239

絵文字のあとにメンションがあるとリンクが正しく作らず、リンクもある場合大量のscore_by_regexpが実行され続ける

Akira Ouchi4ヶ月前に追加. 3ヶ月前に更新.

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

説明

mikutterを--debugで実行しているとたまに「{:trim=>"アカウント名", :target=>"@アカウント名"}」という出力があり
https://dev.mikutter.hachune.net/projects/mikutter/repository/revisions/master/entry/core/plugin/twitter/twitter.rb#L476
で出力していることまで確認したのですが、これが無限に出力され続ける事象を確認しました。

デバッグコードにツイートの文字列を出すように追記したところ、該当のツイートを確認できました。

puts({trim: trim, target: target})
↓
puts({text:text,trim: trim, target: target})

ツイート内容から再現テストした結果、絵文字のあとにメンションがあるとリンクが正しく作られないことがわかりました。

(1) ☺︎︎ みたいな顔文字のあとにメンションがあると、メンションのリンクが正しく作られない。Unicodeのバイト数の解釈的ななにか?
(2) 絵文字がなければメンションのリンクが正常に作られる
(3) (1)に加え、メンションの後にリンクがあると、score_by_regexpが実行され続けて大量のputs({trim: trim, target: target})が出力されるようになる

なお、(3)の現象は、画面上に該当のツイートがなければ出力が止まることを確認しています。

Akkiesoft-994952426481307649.png (52.8 KB) Akkiesoft-994952426481307649.png Akira Ouchi, 2018-05-11 23:54

関連するチケット

関連している 提案 #1241: Scoreの初期値をModelが提供できるようにするtoshi_aの判断待ち
関連している バグ #1242: scoreが何度も呼ばれる終了
関連している バグ #1273: puts({trim: trim, target: target}) のデバッグメッセージが残っているパッチ適用待ち

履歴

#1 cob odo4ヶ月前に更新

  • 関連している 提案 #1241: Scoreの初期値をModelが提供できるようにする を追加

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

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

(1) ☺︎︎ みたいな顔文字のあとにメンションがあると、メンションのリンクが正しく作られない。Unicodeのバイト数の解釈的ななにか?
(2) 絵文字がなければメンションのリンクが正常に作られる

twemojiプラグインの問題だと考えたので、そちらにpull-req送ってます。

https://github.com/cobodo/mikutter-twemoji/pull/1

(3) (1)に加え、メンションの後にリンクがあると、score_by_regexpが実行され続けて大量のputs({trim: trim, target: target})が出力されるようになる

これは誤ってコミットしてしまったものですね。削除しておきます。

また、画面内にある時に複数回呼ばれる問題は、 #1242 で報告されているので、こちらで扱います

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

  • 関連している バグ #1242: scoreが何度も呼ばれる を追加

#4 Izumi Tsutsui3ヶ月前に更新

  • 関連している バグ #1273: puts({trim: trim, target: target}) のデバッグメッセージが残っている を追加

#5 Izumi Tsutsui3ヶ月前に更新

  • ステータス実装待ち から 終了 に変更

(1)(2) はプラグイン側の問題でプルリクマージ済み、
(3) のうち score が複数回呼ばれる問題は #1242 ということなので
(3) の puts の trim メッセージの件のみ分離して #1273 に入れました。
こちらはクローズにします。

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