yuyarinの日記 このページをアンテナに追加 RSSフィード

プログラミングの話題は「yuyarinのtopcoder記」で!

僕を追いかけたい方は Twitter へ!

2008年10月04日

ニコニコ動画のランキング内でソートできるGreasemonkeyスクリプトに絞り込み機能をつけてみた

お知らせ

2008/10/24 ランキングのレイアウト変更に伴い、スクリプトを一部修正しました。インストールこちらから。

これはなに?

以前紹介したニコニコ動画のランキング内でソートするGreasemonkeyスクリプトに絞り込み機能をつけて欲しいという要望があったのでつけてみたものです。

タイトルで絞り込みを行います。要望ではタグを参照して除外するのがメインだったのですが、タグはランキングのエントリに載っておらず、毎回動画かAPIアクセスしないといけないので今回は見送りました。ので要望を満たせていないと思います。すいません。

なまえ 2008/09/21 14:32 
初めまして!とても便利そうなので利用させてもらいます!
ところで、ニコニコのランキングから、
タイトルやタグに特定の文字が含まれた場合に除外する様には出来ないでしょうか?
例えば「-ゲーム」でゲーム関連の動画を抜いたランキングを表示したりとか・・・
もし興味を持たれましたら是非スクリプト組んで下さい!

インストール

こちらからどうぞ。

======

機能説明

ソート機能

前回同様、順位が小さい、数字が大きい、でソートします。また、タイトルをソートの項目に追加しました。文字列的に大きい順でソートされます。昇順降順は要望があれば。

絞り込み機能

いわゆるgrepです。ソートメニュー横のテキストボックスにキーワードを入れて右横のgrepボタンを押してください。キーワードにマッチするエントリーだけが表示されます。入力→Enterでgrepするようにはなっていません(やりかた教えてください)。

スペースで区切って複数のキーワードで絞り込めます。絞り込み方法は&で、前のキーワードから順に評価されます。

キーワードの先頭に-(ハイフン)をつけると、そのキーワードにマッチするものを除外します。

実装としてはsplit(/\s/)で区切って、それぞれ順にタイトルにmatchさせます。つまり正規表現が使えます。逆に言えば正規表現として扱われるものはそのままキーワードに使えません。

ソースコードはドキュメントということで擬似コードを載せておきます。

// 擬似コード
function grep(){
	queries = input_box.value.split(/\s/);
	for(i in ranking_entries){
		var display = true;
		var title = getTitle(ranking_entries[i]);
		for(j in queries){
			if(queries[j].length==0) continue;
			if(queries[j][0]=='-'){
				display &= (title.match(queries[j].substr(1))) ? false : true;
			} else {
				display &= (title.match(queries[j])) ? true : false;
			}
		}
		ranking_entries[i].style.display = (display) ? 'table-row' : 'none';
	}
}

使用例とスクリーンショット

選択

「東方」と入力すれば「東方」をタイトルに含んだエントリーだけ表示します。

f:id:yuyarin:20081004175123p:image

除外

「-東方」と入力すれば「東方」をタイトルに含んだエントリーを除外して表示します。

f:id:yuyarin:20081004175126p:image

選択+除外

「東方 -学園」と入力すれば「東方」をタイトルに含んだエントリーの中から、「学園」をタイトルに含んだエントリーを除外して表示します。

f:id:yuyarin:20081004175124p:image

または選択

正規表現を用いて「東方|ミク」と入力すれば「東方」または「ミク」をタイトルに含んだエントリーだけ表示します。

f:id:yuyarin:20081004175125p:image

選択+ソート

もちろん絞り込みを行ったままソートすることも可能です。

f:id:yuyarin:20081004175127p:image

正規表現

正規表現が使えるのでこのようなこともできます。

f:id:yuyarin:20081004175128p:image

ujihisaujihisa 2008/10/04 22:45 yuyarinが生きてた!

yuyarinyuyarin 2008/10/05 00:33 9月は中間報告で死んでたの><

hgonhgon 2008/10/10 01:50 firefox3ですがニコの仕様変更でスクリプトが機能していない?
確認お願いします

yuyarinyuyarin 2008/10/24 03:58 報告ありがとうございます!修正しました!

aasaas 2008/12/06 20:35 冬の変更で機能しなくなりましたね。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証