Hatena::Groupgeneration1991

gigi-net@G91

2009-06-01

[][][]ニコニコ大百科のリンク先をポップアップする『Popup NicoDict』のVer3.0.0をリリースしました。

f:id:gigi-net:20090514000939j:image

これは何?

ニコニコ大百科キーワードマウスオーバーでポップアップ表示させます。

以前公開したスクリプトの不具合を修正して機能強化したものです。

ニコニコ大百科のリンク先をポップアップするGreasemonkeyスクリプト『Popup NicoDict』改良版リリースしました! - 5.1さらうどん

ニコニコ大百科のキーワードをポップアップ表示させるGreaseMonkeyスクリプト『Popup Nico Dict』リリースしました - 5.1さらうどん

今回のバージョンでようやっと実用レベルになったと思います。


インストール

userscript.orgからどうぞ。

Popup Nico Dict for Greasemonkey


どうぞご利用ください。

バグなどのご指摘をお待ちしております。

また、今後スクリプトが更新される可能性があるので、以下のアドオンを同時にインストールしておくことをオススメします。

インストールしているGreasemonkeyスクリプトの更新をチェックして自動アップデートしてくれるFirefox拡張『Wescript』 | Macの手書き説明書


インストールにはFirefoxGreasemonkeyが必要です。

Greasemonkey固有の関数を使用しているため、他の環境では動かないと思われます。

旧バージョンをベースにしているようですが、Opera対応版を作っていただきました!この場を借りてお礼申し上げます。

Loox Uと初音ミクで行こう!: Operaで使えるニコニコ大百科ポップアップ

設定方法

今回のバージョンから、スクリプト内部の変数を書き換えることで細かい設定が出来るようになりました。

1、上記メニューのツール>Greasemonkey>ユーザースクリプトの管理...を選択

2、ウィンドウが表示されたら、インストールされたスクリプトのリストの中から『Popup NicoDict』を選び、左下の編集を押す。

3、初回起動の場合はエディタの選択を促すダイアログが表示されると思うので、適当なエディタを選択。

スクリプトの内部が表示されると思うので以下の部分を書き換えてください。

/////////////////////////////

//CONFIG

/////////////////////////////

//※デフォルトから変更した場合の動作保証は致しません

//取得する記事の文字数

ARTICLE_LENGTH=1000;

//ポップアップの横の長さ(ピクセル

POPUP_WIDTH=500;

//マウスオーバーからポップアップまでの時間(ミリ秒)

POPUPTIME=500;

//ポップアップの影を表示するかどうかのブーリアン

SHOWSHADOW=true;

パラメーターは書いてある通りなので、特に説明は不要だと思います。

なお、変更してスクリプトが正常動作しなくなった場合は再インストールしてみてください。


以前のバージョンからの修正点

ポップアップ表示にディレイを設けて触れただけで誤爆しないようにした。

以前まではカーソルをなぞるだけで誤爆して大変使いにくかったのですが、今回からは一定時間キーワードマウスを当てないとポップアップしないようにしてみた。

ポップアップ発動までの延滞時間は変数を書き換えることで変更可能です。


ニコニコ動画のwatchページでポップアップFlashプレーヤーの下に出てしまう現象を修正

Windows版ではFirefoxの仕様でFlashプレーヤーの下にポップアップが重なってしまう現象が起きていたようです。

ということで、座標系を変更して重ならないようにしてみた。

こちらにサイトを参考にさせてもらいました。

Flashの前面にHTMLの要素を表示させる。 - なんとなく日記


・/watch/ページでの大百科アイコンとの当たり判定を改善してポップアップしやすくした。

以前は大百科アイコン(http://res.nicovideo.jp/img/common/icon/dic_on.gif)の端の方にマウスを当てないとポップアップが反応しなかったのですが、今回はアイコン全体で反応するようにしてみました。


ポップアップ内の記事の成形方法を変更し、b、brなど一部タグをそのまま残すように改良

若干記事の整形を見やすくした。brタグが入ったので少しは見やすくなったかも


カスタマイズ機能を搭載

変数を書き換えて、挙動を変更できます。

前述の項目を参照してください。


今後の予定

コメント欄アンカーポップアップする機能

今回のバージョンアップで搭載しようと思ったのですが、まだ乗り切っていません。

コメント欄にあるアンカーをいちいち辿るのが面倒なので、個人的にはぜひ乗せたい機能。


技術的なおはなし

今回は特に真新しいことはしていません。

前回からさらに機能を継ぎ足して行ったので、ソースが更に複雑なことになりましたw


ソースコード

userscript.orgからどうぞ。

Source for "Popup Nico Dict" – Userscripts.org

2009-05-14

[][]ニコニコ大百科のリンク先をポップアップするGreasemonkeyスクリプト『Popup NicoDict』改良版リリースしました! 00:13

f:id:gigi-net:20090514000939j:image

これは何?

ニコニコ大百科キーワードマウスオーバーでポップアップ表示させます。

先日公開したスクリプトに機能追加し、不具合を修正した物です。

ニコニコ大百科のキーワードをポップアップ表示させるGreaseMonkeyスクリプト『Popup Nico Dict』リリースしました - 5.1さらうどん


インストール

userscript.orgからどうぞ。

Popup Nico Dict for Greasemonkey


どうぞご利用ください。

バグなどのご指摘をお待ちしております。

インストールにはFirefoxGreasemonkeyが必要です。

Greasemonkey固有の関数を使用しているため、他の環境では動かないと思われます。

以前のバージョンからの修正点

ざっと書くと

ニコニコ動画内の大百科へのリンクからもポップアップが開けるようになった

f:id:gigi-net:20090514000936j:image

こんな感じ。

おそらく待望の機能かと。

この機能がないとこのスクリプトの意味があんまりない気すらするw


ただ、これだけちょっぴり反応が悪い感じ。

コツを言うと大百科アイコンの左上の辺りにカーソルを乗せることですかね。


ニコニコ大百科内での対応ページを記事ページのみから検索結果やトップ含め全ページへ拡張

f:id:gigi-net:20090514000938j:image

検索ページからもこの通り!

その他、トップだろうがコメント欄だろうが大百科内からでは、どこでもどんな記事でもポップアップできます。


ポップアップ先のページの取得範囲を従来の単語記事ページのみから、動画、市場、コミュニティ、ユーザー記事からも取得できるように拡張

URL

単語:/a/

動画:/v/

ユーザー:/u/

市場:/i/

コミュニティ/c/

と言った感じで分かれているらしいので全てに対応させてみた。

ページの構造は同じなのですぐに取得できました!


ポップアップが消えなくなったり表示されなくなるバグを修正

コメントでも指摘があったバグ

いろいろ使ってみて、自分でもこれはひどいという状態だったのを直してみた。

誤爆はほとんどなくなった感じ。

まだ問題あったらご指摘お願いします。


ポップアップがウィンドウの表示範囲外にはみ出さないように修正

f:id:gigi-net:20090514000940j:image

普通にマウスカーソルの真下に出して、はみ出すようであればポップアップの底辺がウィンドウの底辺に接触する位置になるようにポップアップを移動するようにしてみた。

少しは見やすくなったはず。

ちなみに、コメントで教えていただいた物のソースを見てもよくわからなかったので自己流で搭載してみた。


必要性を感じなかったので、縦方向にしか回避しません。

横方向ではみ出してしまった場合は、そのままです。

ただ、横にはみ出すこと自体あんまりないので不要かなー。


・リンク先の記事がリダイレクト設定されていても、リダイレクト先の記事を取得できるように修正

f:id:gigi-net:20090514000937j:image

誤植していても正しい記事が表示されます。

コメントの方でGM_xmlhttpRequestのFinalUrlプロパティを参照すると良いと教えていただいたのですが、上手く取得できなかった。

結局、ニコニコ大百科リダイレクトページを見てみると、ヘッダ部分にリダイレクト先のURLが埋め込まれていたので、それを取得してくることで対応しました。


・取得文字数を300文字から500文字に拡張

ちょっぴり増やしてみた。

これは好みの問題かなー?

ソースコード16行目のARTICLE_LENGTHという変数値が取得する文字数なので、お好きに変更してください。


・タイトルの取得方式を変更し、タイトル部の英字が小文字に変換されてしまうバグを修正

そのまんま。細かく言うと、リンク先のページのh1要素から取得させてみた


・【】で囲まれた文字が自動的に改行される不具合を修正

不具合というか前バージョンのリリース以前から既知の問題でしたが、あんまり気にならないの前回はそのままリリース。

今回はこっそりと修正してみた。


・記事整形後に中身がなくなった小見出しを削除

例えば【関連動画】のような小見出しがあって、その見出し以下の項目が動画へのリンクのみだった場合、ポップアップには何も表示されないのが不自然なので消してみた。


技術的なおはなし

関連エントリの奇跡 - 5.1さらうどん

上記の記事で、大百科APIがあることを発見し、仕様に文句を垂れた挙げ句、中の人に仕様変更までしていただきました。

しかし、わざわざ修正していただいたにも関わらず今回は大百科APIは使っていません。

我ながら非常に申し訳ないw


致命的な問題として、やはり取得できる文字数が少ないというのが大きかったです。

このAPIを使わずとも、自前のスクレイピングで上手いこと記事が取得できてしまったので特に使う理由がありませんでした。


ソースコード

続きを読む

2009-05-12

[][]指定日前のはてブRSS配信する『全自働はてブ棚卸し』の取得範囲を広げてみた 12:57

全自動ブックマーク棚卸しが想像以上に有意義な件 - てっく煮ブログ


一定月前にブクマした記事を配信するRSS

毎日たくさん記事をブクマするヘビーユーザーならいいのかもしれないけれど、一日でそんなにたくさんの記事をブクマしない僕にとっては、大体1年前の前後含めて3〜5日分ぐらいの記事をまとめて読みたい!


というわけで、Yahoo!Pipesで作られていたようなので、自分好みに改良してみた。


こんな風になる

Pipes: はてブ棚卸し(改)

http://gyazo.com/ceb409f347f9d6cae62de588688f7347.png



例えばb:id:gigi-netの2008年5月10日から14日までのブクマRSS配信するとこうなる。

http://gyazo.com/dd5d3281d2227773c522e5b56b3b0ef1.png



どうやって使うの?

Pipes: はてブ棚卸し(改)

上記のリンクにアクセスして、ユーザー名を入れてもらえるだけで使えます。

「前後5日じゃ多すぎる。指定日とその次の日、前日の3日間だけ配信したい!」という方の為にフラグ機能を付けました。

配信範囲の項目を0にすると3日配信、1にすると5日配信になります。

そもそもYahoo!Pipesは機能が恐ろしく少ないので、かなり強引な方法で実現させています。

気になる方の為にどのようにやったのか下の方にこっそりと掲載してみた。

そのため、それ以外の数字を入れると、おそらくおかしな記事が出力されると思います。


オリジナル版との変更点

また、オリジナルでは月で指定するのが、このバージョンでは日で指定する物になっています。

いろいろ試してみたのですが、Date Builderモジュールで「12か月と1日前」といった細かい指定が出来なかった為です。

だいたい3か月前が見たい場合は90とでも指定してやればいいと思います。

当然、ぴったり3か月前にはなりませんが、そんなに厳密にする意味を感じなかったので。


どうぞご利用ください!

続きを読む