2007/02/10 全面的にリファクタリング。書き直し。特にポップアップ周りはOOPでスッキリした。 せっかくなので、smorgasbord.drwatson.nobody.jp にページを作る。 ポップアップ ・画像ポップアップも共通のクラスで管理されるので、フェードアウトが効きます。 画像の最大幅は256ピクセルに変更されました。 画像読み込み時にエラーが発生した場合、特別ポップアップは表示されません。が、代わりに 「エラー」と書かれたツールチップが表示されるハズです。(title 属性をセットするから) 強引にポップアップのコンテナ上にを載せてるせいで挙動がいろいろと怪しくなってしまってます。 ・URLポップアップは内緒でsnap.comを利用するように変更。(マズいようならSimpleAPIに戻します) 迷惑を掛けないように、ファイルへのリンク(.zipとか)はリクエストしないようになってます。 ・動画ポップアップは、例のstage6の仕様変更で、動画のURLが特定できない場合は、代わりに プレビュー画像をポップアップするように。あと新しくguba.comのポップアップができるようになってるハズ。 ・nicovideo.jpのポップアップは、下に白い余白が残ったり、表示し切れなかったりしますが、 権限エラーで中のdocumentには触れられないので、これはこのまま放置します・・・。 UI ・右上のバーを整理。アイコンをつけた。使用頻度が少ないと思われるものについては、右端の シェブロンをクリックして現れるメニューからアクセスします。 ・Milky Liteの頃にあった[検索/抽出]を復活させた。ただ常時表示されるわけではなくて、虫眼鏡アイコンをクリック するとその下に窓が現れます。何も入力されていない場合、窓はフォーカスをはずすと自動的に消えますが、何か 入力されている場合はそのまま残ります。入力したらEnterキーで検索/抽出します。マッチした場合、窓の虫眼鏡が 青くなって、マッチしたレスのみが表示されます。マッチしなかった場合は、虫眼鏡アイコンが赤くなります。 窓の[×]ボタンで元の状態に戻ります。スレッド全体に検索を掛けたいときは、[すべて表示]で全体を表示させてから。 新機能 ・[オプション]ダイアログを作成/管理するスクリプト option.js を書いて、pref.js と組み合わせてみる。 ということで、[オプション]ダイアログからスキンの設定ができるようになりました。 ・[解析]機能が、[スレッド情報]に名前を改めて復活。オプションダイアログを流用して、前よりもスマートなデザインに なった。現在表示されているレスから情報を集めるので、スレッド全体の情報が見たい場合は、[すべて表示]を行ってから 表示させてください。処理には時間がかかる場合があるので、カリカリせずに待ちましょう。外部リンクが種類別に分類さ れるので、前より便利かもしれない。 ・[自動更新](オートリロードっていう名前は好きじゃないので)機能を追加。デフォルトでは30秒おきにレスが更新されます。 オプションを設定すれば、実況板のスレッドを開いたときに自動的に有効にできます。 ・[タイトルと URL のコピー]で、クリップボードにスレッドのタイトルとURLがコピーできます。 ショートカットキー ・[←][→] キーでそれぞれ前のレス、次のレスで移動するように。 ・[Ctrl + Enter] で書き込み、[Ctrl + Space] ですべて表示。 ・[Ctrl + Alt + F] で検索窓表示。 ・[F5] で新着レスを追加。 2007/01/26(2) ・更新するときにスクロール位置などがズレてたので修正 2007/01/26 ・自動AA判定の精度が上がってきた。 ・でも実は今までAA自動判定がうまく動いてなかったかも。ごめんなさい。 ・AA自動判定時のスクロールの重さが多少マシになった。 ・本文中にID:xxxが登場した場合は、IDの発言が一回のみでもポップアップするようになった。 ・ID:xxxからID抽出できるようになった。 ・レスポップアップのバグ修正。 ・ヘッダのスレッドタイトルがはみ出たときは、"..."で省略表示するように。 ・ポップアップのフェードアウトが動くようになった。楽しいのでデフォルトで有効になってます。 フェード速度は、pref.jsから設定できます。マシンパワーに応じて変えましょう。 2007/01/25(2) ・名前ポップアップが動いてなかった。 ・本文内に登場するID:xxxがいつのまにかマークアップされてることに気づいたので、 本文中のID:xxxにも色が付いてポップアップできるようになりました。 ・存在しないレスにアンカーが張られていたときでも、最後の1レスがポップアップして いたので修正。 ・opacityプロパティでポップアップをフェードアウトさせようかと画策中。 ただ、まだあんまり安定して動かないみたいなので、書きかけでやめてあります。 ・pref.jsの中身をいじることで機能の有効/無効をいじれるように。 2007/01/25 ・レスポップアップにドロップシャドウがついた、結構苦労したのに見た目が地味な罠 (画像/URLポップアップにはつきません、あしからず) ・そんなわけで同梱のdropshadowtest.htmlはCSSでドロップシャドウ付ツールチップの 実験サンプルになってます。興味のある方はどうぞ。(スキン本体とは関係ないファイルです) ・最近のb2rの仕様変更に追従 ・b2rのオプションからフォントを変更できるように (AA用フォントは今までどおりCSSをいぢる必要あり) ・画像ポップアップで404だったときの画像追加 ・(`・ω・´)は幅広で気に喰わないので(゚∀゚)にしてみる 2006/12/20 ・下の多重にime.nu.htmlが呼ばれるバグ修正における、お粗末すぎる赤面モノのミスを修正。 ・既にAA判定したかどうかのチェックを、とりあえず連想配列にフラグを立てて、単純に チェックしてみる。おもいっきり手抜きだが、要素のプロパティにアクセスして比較するよりかは 幾分パフォーマンスはマシなようだ。 2006/12/19(2) ・リファラ漏れ対策で激しくエンバグしていたので修正。 (ポップアップのたびにsetLinkToAnchorが呼ばれ、ime.nu.htmlが多重に呼ばれていた) (リンク先ポップアップで、ime.nu.htmlを取り除くのを忘れていて、動いていなかった) 2006/12/19 ・前版でレス番クリック時の処理にエンバグしてたので、修正。 ・コメントアウトしておいた自動AA判定を導入。onScrollで、今可視状態にあるレスのみ判定するので、 XGA環境なら多くて10レス程で済む。まぁまぁ実用レベルのパフォーマンスに。 AA判定のアルゴリズムですが、現在は「記号が60%以上ならAA」ということになっているので、適当です。 (そのうち他の2chブラウザの判定基準を参考にしようかと思ってる、なにかアイデアがあれば教えてください) 今はAA判定のみですが、スパムフィルタ的なものにも応用できるかな。 ・ログピックアップモード/ID抽出の時や、アンカーに一部のみ非表示レスがあったときの動的レス追加の挙動が修正されているハズ。 2006/12/14 ・BRANCH-SERVER版からの外部リンクは、リファラがだだ漏れしていることに気づいてしまったので、 強引にでリダイレクトさせる。本物のime.nuと違って、リファラは空っぽになります。 ・float:leftを使いレス番を左に追い出して、名前欄と本文の水平位置が揃うように。 ・ポップアップ時に呼ばれていたsetLinkToAnchor()をコメントアウト。 2006/12/13 ついにオフィシャルにBRANCH-SERVER版のテスト配布が始まった。いぇい。 ・videopopup.js を書いた。YouTube, stage6, Google Video, Metacafe のポップアップに対応。 (http://d.hatena.ne.jp/fls/20061113 を参考にさせていただきました) Dailymotionにも対応させたかったが、URLから動画のIDが取得できないので諦めざるを得なかった。 ・[要約]を実装。/.でしきい値を設定して要らないレスをフィルタリングするように、アンカーを含むレスと、 アンカーを受けたレスのみ表示する。勢いがあってかつ長いスレッドを流し読みするのに便利かも。 ・いわゆる逆参照をリストアップするとき、>>1-1000みたいな馬鹿アンカーを無視するように。 今のところ100レスをしきい値にしてあります。 ・[すべて表示]で複数回クリックしたときに>>1が二度挿入されるバグの修正。 ・CVSから取ってこなくてよくなったので、その旨を readme.txt に追記。 2006/12/11 結局、たいしていぢってない。 ・逆参照の配列をキャッシュしておくことにしたので、レスがたくさん表示されて いる場合でも、二回目からのポップアップは高速になります。 ・ポートは8823固定というわけではないようなので、その絶対表記をやめた。 (about:config -> fls.bbs2chreader.server_port で値が変わるらしい) ・AAを自動判定してフォントを変えようと思ったが、とても重いので泣く泣くコメントアウト。 ・最下部に余白を設定。と同時にヘッダとフッタの背景画像を http://miwa.offside.ne.jp/images/entry/software/rss_reader/about.1.gif から無断で抜き出して使わせてもらうことに。おかげでキリッと引き締まった希ガス。 ここらでTODO: ・ポップアップを高速化。一つ一つ要素を追加してくと時間がかかるので、 いっぺんにまとめて追加すると良いかもしれない。 ・で貼ってあるリンク先のスレッドの情報をポップアップさせる (今のままやろうとすると、スレッドを既読にしてしまう問題が。b2r側でなんらかの対処が必要) ・ID抽出がノロいのでどうにかする(どうしようもない?) ・デザインがまだダサイ/カラースキームを動的に切り替えられるようにしたりして。 ・ポップアップにドロップシャドウとか。 (もしでグルグル包囲する感じになるんならやりたくないなぁ。) 2006/12/04 (2) ・まだBRANCH-SERVER版がイマイチで、サイドバーの履歴からスレッドを開いたときなど、 bbs2ch:thread:で読みに行くケースがあるので、自動でリダイレクトするように。 (もしかしてlocalhostから読みに行くと、b2rのサイドバーの履歴に残らなかったりする? ここらへんはsf.jpの方に報告しなきゃいけないかも。) ・CVSから引っ張ってくるときになんとなくオプションを間違えた気がしたのでxpi差し替え。 2006/12/04 F5キーを乗っ取れるなんて知らなかった。うれしい悲鳴。 ・挿入されるレスが重なってたので修正。 ・F5キーを抑制して、かわりにreload()を呼ぶようにした。 (ただし5秒間のリロード制限を掛けてあります。) ・ステータス表示はデフォルトのものを流用するように。 ・たまに取得レス数とスクロール位置がズレるバグを確認。再現方法/原因がよくわからない。 ・BRANCH-SERVER版xpiを添付してみた(マズいようなら止めます) 2006/12/03 お粗末なバグ修正。さらにエンバグしてないことを祈る。 ・スキンの名前をsmörgåsbordに改める(Unicodeを使ってみたかったということもある) ・readme.txt、history.txtを整備。 ・前版で挙動がおかしかった部分はだいたい直ってる希ガス。 ・動的なレス挿入のスピードが10倍くらい上がった。(当社比) ・一レスごとに背景画像を変えるデザインは廃止。それに伴う高速化。 (動的に挿入するレスの数次第で、デザインが破綻する可能性があるから) ・Base64エンコードでCSSに直接埋め込んでいた画像はスキンディレクトリに移動されました。 ・スレタイクリック時の更新は、"l0n"オプションで動的に追加するようにした。F5の[更新]と上手く使い分けましょう。 TODO: ・で貼ってあるリンク先のスレッドの情報をポップアップさせる ・ID抽出がノロいのでどうにかする ・デザインがまだダサイ 2006/12/02 BRANCH-SERVER版b2rの実験目的で制作再開。 ・29chがサービス終了していたので該当機能は廃止。 ・絞込みボックスも誰も使ってない気がするので廃止。 ・分析も同じく廃止。 (実験段階なので必要最小限の機能ではじめることにした) ・デザインを落ち着いたものに変更。 ・表示域外ポップアップはXMLHTTPRequestで動的に取ってくるように。 (方式からの脱却。) ・表示域外のアンカーをクリックすると、そこまでのレスを画面遷移なしで そのまま追加して表示するようになった。 ・同じく[すべて表示]も画面遷移なしでレスが挿入される。 以下はMilky lite(release)時代の履歴。 2006/04/05 大幅なデザインの変更+機能の追加+それに伴うスクリプトの修正。 ・某OS風を意識したルック&フィール。余白を見直して可読性が上がった(当社比) ・ツールバーは廃止してヘッダと統合。 ・現在の表示レス数を元に前後に移動する「前のページ」「次のページ」ボタンを追加。「移動」コンボボックスは廃止。 ・「スレッド一覧に戻る」「最新のレスに移動」のためにスレッドタイトルに両端に、 それぞれ左方向と右方向の矢印ボタンがついた ・「更新」はスレッドタイトルをクリックで再読み込みするように変更。 ・レス毎に表示されていた「返信」アイコンはレス番クリックに変更。 ・レス毎に背景画像が交互に切り替わるようになった(多少パフォーマンスは低下しましたが) ・絞込み機能は onInput イベントでトリガーするようにした。 ・2ch以外のリンク先をポップアッププレビューするようにした。(simpleapi.net を使わせていただいてます) 向こう側でキャッシュされていない場合、画像が出てくるまで数秒掛かりますのでマターリお待ちください ・PNGGauntlet を導入して、添付されていたPNG画像をコンパクトに。 ・従来の「表示レス数」のコンボボックスは、某OSでいうボリュームコントロール風のトラックバーに変更して、 より直感的なインターフェイスで操作できるようになった。 ・画像ポップアップの背景画像を用意した。URLポップアップも同上。 ・表示域外のアンカーをクリックすると新しいウィンドウで表示する仕様に。 ・新着レス取得時にスクロール位置がまだズレていたバグを解決できたかもしれない。 ・readme.txt を添付。 TODO: リンク先のスレッドの情報取得 2006/03/31 ・抽出(絞込み)機能を暫定的に追加 2006/03/30 ・19日に追加した表示域外レスポップアップのバグがある程度取れた。しかし、ドンドン右下に潜って ポップアップしていく仕様は相変わらずです。 ・同じ処理をしていた関数をグローバルにしてダイエット。イベントハンドラも大体まとめた。 ・逆参照機能のゼロからの書き直しと最適化→速度が改善したので、全てのポップアップで逆参照表示を復活。 ・[Javascript コンソール] でエラー表示されていた部分を修正。 ※AA用のフォント変更機能については未実装です。 2006/03/19(人柱版) ・表示外のアンカーをポップアップする機能が付いた(ただし動作はモッサリ、挙動不審につき注意) 2006/03/08 午前3時 ・IDのポップアップ周りを修正 ・分析の時刻周りを修正 2006/03/08 ・スレッドの分析機能を付けた(大きいスレッドだとかなり時間が掛かります) ・「逆参照」をなんとなく「被参照」に置換(戻すかも) ・レス番号の上にカーソルを持っていくとポップアップするようにした ・で、被参照レスを探してくるのは結構重労働なことがわかったので、複数アンカーやIDポップアップの際の 被参照表示を省いてパフォーマンスを向上(でも↑で被参照は確認できます) ・なんだかメモリリークが心配になったので、あやしいオブジェクトにnullを代入するようにした 2006/03/02 昼 ・deleteAllPopup()が不意に実行されてポップアップが消えてしまうバグを修正 ・704氏のmenubutton.jsをとりあえず保存しておいた 2006/03/02 朝 ・謎のゴミコードがdeleteAllPopup()に混入していたので削除 (気付かない間、ずっと機能してなかったようだorz) ・ID抽出のとき、href にb2rのスキームが付いていなっかったので修正 ・ファイルの末端に改行を追加 2006/03/02 ・逆参照機能を実装(連想配列サマサマです) ・強引にID抽出の結果を新しいウィンドウで開くように ・アンカーをクリックしたときのスクロール位置を修正 ・指先のカーソル形状を適切と思われる箇所に設定 2006/03/01 ・にくちゃんねるのdat2html.cgiに渡すボタンを追加 ・2回、3回以上発言したIDにそれぞれ色分けするようにした (流石に1000レス表示させると、以前よりパフォーマンスが低下しているのを実感) ・新着レスへスクロールする際の位置が正しくなかったのを修正 (position:fixed の存在を忘れていた) ・ID:???0 の時もポップアップや色分けを無視するようにした...ハズ 2006/02/27 ・外部リンクを新しいウィンドウで開くように ・ID:???の際のポップアップを止める ・名前欄のポップアップを修正 2006/02/26 ・公開