ゆるめ

ゆるめなのは公開範囲です。

回答に (はてなにより削除しました) のある質問でスターが表示されない

question:1288431157 などでスクリプトエラーが出てスターが表示されないのは、一部の回答が div.section ごと削除されているのが原因みたいです。

通常

<div class="answer-detail"><div class="section">
	<p>回答の文面</p>
</div>
</div>

削除済み

<div class="answer-detail">(はてなにより削除しました)
</div>

回答に返信をつければ返信部分の div.section を利用するみたいで、エラーは出ません。
でも返答しようの無い文面なので、返信していない人も結構多いです。なのでちょくちょくこの現象に出くわします。

私がしたこと

ものっすごくお粗末ですが、以下のフィルタで対処しました。

[Patterns]
Name = "?Q restore star"
Active = TRUE
URL = "q.hatena.ne.jp/$TYPE(htm)"
Limit = 128
Match = "(this.title =)\1 (Ten.DOM.getElementsByTagAndClassName\('div', 'section', this.div\)\[0\])\2"
Replace = "var section = \2;\r\n"
          "\1 (!section) ? "" : section"

いつ頃からそうなってたか、とかは特に調べる気はありません。今日気付いて対処したよ、ってことだけどこかに記したかったので、この日記に書きました。