フィルター機能とは
フィルター機能を用いることで
- 不快なコメントを表示しない
- 気に入ったコメントだけ表示する
- コメントをある程度好みに編集する
といったことができます。
フィルターをかけるリストは、Nico Playerの「表示」→「コメント」→「フィルタ」で、Shiftキーを押しながらリストを選択することで編集できます。エクスプローラから編集するときはNicoPlayerをインストールしたフォルダにあるfilterフォルダ内のテキストドキュメントがフィルタリストです。
フィルターをかけるリストは、Nico Playerの「表示」→「コメント」→「フィルタ」で、Shiftキーを押しながらリストを選択することで編集できます。エクスプローラから編集するときはNicoPlayerをインストールしたフォルダにあるfilterフォルダ内のテキストドキュメントがフィルタリストです。
ローカルフィルタ
ローカルフィルタを用いることで、動画に対して個別にフィルタを設定することが出来ます。
ローカルフィルタファイルは動画のファイル名(拡張子は.txt)と同じにして同じフォルダに置きます。(動画情報テキストファイルと兼用します)
ローカルフィルタ機能を有効にするにはNico Playerの「表示」→「コメント」→「フィルタ」→「ローカルフィルタを有効にする」を選択して下さい。
ローカルフィルタファイルは動画のファイル名(拡張子は.txt)と同じにして同じフォルダに置きます。(動画情報テキストファイルと兼用します)
ローカルフィルタ機能を有効にするにはNico Playerの「表示」→「コメント」→「フィルタ」→「ローカルフィルタを有効にする」を選択して下さい。
不快なコメントを表示しない
内容(Word)/ID(ID)/表示形式(Command)のそれぞれについて、個別に非表示設定をすることができます。
内容(Word)
NG ワード.txt [Exclude Word] 自演 儲 文句
上記の言葉が内容に含まれていると、そのコメントは非表示になります。コメントの一部分でも一致すると発動するので、あまり短い言葉を使うと思わぬ副作用をもたらすことがあります。例えば「文句あるなら見るな」という発言を消すために「文句」という言葉を使うと、「文句なし!」といった肯定的な発言まで消してしまうことになります。
なお、改行によって複数の文字列を指定できます。
なお、改行によって複数の文字列を指定できます。
ID(ID)
NG ID.txt [Exclude ID] D8d3Af-QQT2tYSakyOnvhEzlu48 a
ここでいうIDは発言者のアカウントに結び付けられたもので、ひとつの動画で共通となります。同じ名前なので紛らわしいですが、ニコニコ動画のアカウント情報に表示されるID(数字列)とは別です。片方を知っても他方を類推することはできません。
ここでも部分一致(一部でも一致すれば発動)なので、短いIDを使うと副作用をもたらすことがあります。例えば「a」を使うと、IDにaが含まれる全てのコメントが非表示になります。ID同士に関連性はないので、ID全体を入力してしまったほうがいいでしょう。
また、Ver.0.28からは再生画面上のコメントを右クリックすると、「IDをコピー」が使えます。また「NGID に登録」を使うと自動的に「NG ID.txt」を作成し当該IDを追加してくれます。
改行によって複数のIDを指定できます。
コマンド(Command)
NG コマンド.txt [Exclude Command] shita
大きな文字、目に痛い色、一部を占有し動画が見えない、などコマンドを使ったコメントは、時にわずらわしい場合があります。そういう時、特定の装飾を施されたコメントを非表示にすることができます。
「shita」を使うと画面下に固定して表示されるコメントが全て非表示になります。適用範囲が広いため、発動しっぱなしはお勧めできません。適時使い分けましょう。
「shita」を使うと画面下に固定して表示されるコメントが全て非表示になります。適用範囲が広いため、発動しっぱなしはお勧めできません。適時使い分けましょう。
半角スペースで一定のコマンド組み合わせを指定できます。
[Exclude Command] green shita
ではgreenとshita指定されたすべてのコメントが非表示になります。
改行で複数のコマンドを指定できます。
改行で複数のコマンドを指定できます。
気に入ったコメントだけ表示する
「不快なコメントを表示しない」では[Exclude Word]・[Exclude ID]・[Exclude Command]というキーワードを使いました。この「Exclude」は否定、つまりコメントを非表示にする条件を指しましたが、この部分を「Include」と書き換えると、意味が逆転して肯定、つまり「表示する」になります。
この「表示する」というのは、「他を表示しない」の裏返しです。「Exclude」では特定のコメントを非表示にしましたが、「Include」は特定のコメント”のみ”表示するのです。条件に当てはまらないコメントは全て非表示になります。特定のコメント職人によるコメントだけを表示したい時などに使ってください(この場合はID指定)
[Include Word]・[Include ID]・[Include Command]はいずれも、非表示設定である[Exclude ~]よりも先に処理されます。したがって、「Include」で表示されたコメントを、「Exclude」で非表示にすることになります。
特定のIDのコメントのみ表示->そこから特定の言葉を含むコメントを非表示にする
というシナリオになります。逆にすることはできません。他の条件は、「Exclude」と同等です。
置換(置き換え)
置き換えを行う指定はReplace Word, FirstReplace, LastReplaceの3種類があります。
通常の置き換えにはReplace Wordを使用します。書式は以下のようになります。
通常の置き換えにはReplace Wordを使用します。書式は以下のようになります。
コメントの文字を置き換える
[Replace Word] (置き換え前の文字列)=(置き換え後の文字列) ※括弧は省略することが出来ます
また、FirstReplace, LastReplaceを用いることでコマンド等も含めた高度な置き換え処理を行うことが出来ます。
置き換え対象となる内容は以下のような書式になっています。
<chat date="投稿時間" deleted="削除されたか否か" mail="コマンド" no="投稿ナンバー" premium="プレミアムか否か" thread="スレッドID" user_id="ID" vpos="動画上の時間">コメント本文</chat>
フィルターを処理する際に、最初に置き換える場合はFirstReplaceを、最後に置き換える場合はLastReplaceを使用します。
置き換え対象となる内容は以下のような書式になっています。
<chat date="投稿時間" deleted="削除されたか否か" mail="コマンド" no="投稿ナンバー" premium="プレミアムか否か" thread="スレッドID" user_id="ID" vpos="動画上の時間">コメント本文</chat>
フィルターを処理する際に、最初に置き換える場合はFirstReplaceを、最後に置き換える場合はLastReplaceを使用します。
フィルターをかける際、一番最初に置き換える
[FirstReplace] (置き換え前の文字列)=(置き換え後の文字列)
フィルターをかける際、一番最後に置き換える
[LastReplace] (置き換え前の文字列)=(置き換え後の文字列)
いずれの置き換えでも正規表現を用いることができます。
また、左側の指定で()でくくったものを、右側で順に$1、$2、…として取り出せます。
また、左側の指定で()でくくったものを、右側で順に$1、$2、…として取り出せます。
フィルターがかかる順番
FirstReplace → Include Word → Include ID → Include Command → Exclude Word → Exclude ID → Exclude Command → Replace Word → LastReplace
の順にかかります。
の順にかかります。
正規表現
正規表現とは、文字列の集合を一つの文字列で表現する方法の一つです。
主にプログラミングで使用されますが、NicoPlayerのフィルターでも使用することができます。
詳しくは以下のURLを参照。
正規表現 - Wikipedia
boost::regex での正規表現
主にプログラミングで使用されますが、NicoPlayerのフィルターでも使用することができます。
詳しくは以下のURLを参照。
正規表現 - Wikipedia
boost::regex での正規表現
正規表現での指定
表現をスラッシュで囲むと、正規表現として認識されます。
[Exclude Word] /.*あ{3,}.*/
正規表現の文法
多すぎて書ききれないので詳細は上記URLを参照してください。
以下には簡単なもの、およびdefault.txtで使用されているもののみを示します。
以下には簡単なもの、およびdefault.txtで使用されているもののみを示します。
.
「.」をつけることで、「任意の一文字」を表します。
[]
「[]」により、「[]内の任意の一文字」を表します。
[abc]では、aかbかcのいずれか、となります。abcではないことに注意してください。
[abc]では、aかbかcのいずれか、となります。abcではないことに注意してください。
[^]
「[^]」により、「[]内の任意の一文字以外」を表します。
[^abc]では、aかbかcのいずれか以外、となります。abc以外ではありません。
[^abc]では、aかbかcのいずれか以外、となります。abc以外ではありません。
*
「*」によって、「0回以上の繰り返し」を表します。
+
「+」によって、「1回以上の繰り返し」を表します。
?
「?」によって、「0回か1回」を表します。
{n}
「{n}」(n:整数)によって、「n内の回数分の繰り返し」を表します。
{n,}
「{n,}」(n:整数)によって、「n回以上の繰り返し」を表します。
{n,m}
「{n,m}」(n,m:整数)によって、「n回以上m回以下」を表します。
/.*あ{3,}.*/
では、任意の文字が0回以上続いたあと、「あ」が3回以上続き、そのあと任意の文字が0回以上続くことを表します。
つまり、「あああ」「なんぞこれあああああ」「あああああうp主自重ww」「ああぁああああぁぁあぁあ」などが引っ掛かります。
つまり、「あああ」「なんぞこれあああああ」「あああああうp主自重ww」「ああぁああああぁぁあぁあ」などが引っ掛かります。
/mail="[^"]*"/
では、「mail="」の後に「"」以外の文字が0回以上続き、その後が「"」のものを表します。
/mail="(.*)(shita|ue)([^"]*)"/
では、「mail="」の後に任意の文字列が0回以上続き、その後「shita」か「ue」いずれかがあり、
その後ろに「"」以外の文字が0回以上続き、その後が「"」のものを表します。
つまり、大きさ・色指定に関わらず「shita」か「ue」が含まれたコマンドすべて、です。
※「|」は「または」を示します
その後ろに「"」以外の文字が0回以上続き、その後が「"」のものを表します。
つまり、大きさ・色指定に関わらず「shita」か「ue」が含まれたコマンドすべて、です。
※「|」は「または」を示します
用例
- 匿名コメント(コマンド=184)として書き込まれたコメントを「###匿名コメント###」と置き換える
[LastReplace] (/<chat(.*)mail="(.*)(184)([^"]*)"([^>]*)>(.*)</chat>/) = (<chat$1mail="$2$4"$5>###匿名コメント###</chat>)
コメント
- filter\default.txtの内容そのままです。後は置換と正規表現(外部へのリンクでいいでしょう)と用例の充実ですかね。 -- 名無しさん (2007-10-26 23:48:55)
- 置換は簡潔に書けなかったので他の人にお任せ、コメントリストウィンドウあたりに選択式のIFを追加するとコマンド置換あたりはぐっと身近になりそうですね -- 名無しさん (2007-10-26 23:54:48)
- 正規表現加えました。自信はあまりないので間違いありましたら修正お願いします -- 名無しさん (2007-10-29 01:24:23)