nicontroller.js ver. 0.41

http://d.hatena.ne.jp/janus_wel/20080913/1221317583 にコメントといっしょに patch もらった !! ありがたく適用させていただきやんした。やんした ?

使い方

変わりません。

技術的なハナシ

以下リアクションという名の技術的なキャッキャウフフ。興味ない方は無視してください。

Array.prototype.clone があると for (var i in []) ループで配列インデックスでループした後に clone が i に入って余分にループするようです。多分その影響で :map i とかが無効になる現象を確認しました。

とりあえず以下の修正で現象は発生しなくなりました。が、clone を置き換えた部分が正しく動作しているかは未確認です。

nicontroller.js ver. 0.40 - KBDAHOLIC - やぬすさんとこ

native class に method 追加しちゃうと for(var in []) ループの中で hasOwnProperty を使わなくちゃいけないの問題ですね。たぶん前から見かけていたけど今ググってちゃんと知りました。問題の説明と解決方法は以下のページのとおりだと思うんですが波及する箇所がおれのコントロール可能な範囲に収まらないので patch の通りに手動インライン展開しました。

clone の置き換えに関しては問題ないみたいですね。なんでわざわざ使えるコマンド群の複製を返してるのかっていうのは、参照を渡して返した先で破壊されちゃうとやっちまった感が溢れるからという理由です。まぁ渡した先が非破壊的な操作を行ってくれていればいいんですがそういう前提を設けるとだれかがしょぼーんとなるので ( 未来のおれとか NicoPlayerController クラスを Greasemonkey script に移植されている方とか。いるのか… ? クラス定義部分をそのままコピペで動くはず ) セーフティネットという意味でこうしてますです。

togglePlay の修正も混ざってますが、これは上記修正とは関係ありません。最後まで再生した後に、 ext_getStatus() が ’buffering’ とか ’end’ になると再度再生ができないことに対する修正です。
# これも flvplayer がよく解ってないので正しいのかどうか判らないんですよね。この報告とは関係ありませんが。
それとスパム判定されたURLを置換してあるのでそのまま patch としては適用できないと思います。
# 多分普通はここに diff 載せたりはしないんでしょうね。

以上報告まで。あと、ありがとうございます。この plugin。

nicontroller.js ver. 0.40 - KBDAHOLIC - やぬすさんとこ

togglePlay のバグは普段 NicoNicoPlaylist を使っているので気づいてませんでした。ありがとうございます。こちらも適用させていただきました。内部のことはおれもよくわかってませんがこれで意図通りの動作なのでいいんじゃないでしょうか ( えー。

diff はコメント欄でもメールでも twitter で一行ずつでもおれが気付くように書いてもらえば無問題です。あとスパム判定の件で変な気を使わせてしまってすみません。今後ともよろしくお願いします。あとお礼言われてテンションあがった。