バグ #1239
完了絵文字のあとにメンションがあるとリンクが正しく作らず、リンクもある場合大量のscore_by_regexpが実行され続ける
説明
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)の現象は、画面上に該当のツイートがなければ出力が止まることを確認しています。
ファイル
関連するチケット
toshi_a 初音 さんが6年以上前に更新
- ステータス を 分類待ち から 実装待ち に変更
(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 で報告されているので、こちらで扱います
Izumi Tsutsui さんが6年以上前に更新
- 関連している バグ #1273: puts({trim: trim, target: target}) のデバッグメッセージが残っている を追加