条件検索に関する Mini-HOWTO
© 2002 Vidar Madsen, Markus Goetz
これはまだまだ不完全です。感想や提案は vidar@gimp.org までお寄せ下さい。
序文
gtk-gnutella 0.90 の条件検索コードは劇的に改良されました。この簡単な HOWTO でフィルターによってもたらされる強力な力の取り扱い方をお伝えしようと思います。
フィルターは後に得る新しい検索結果にのみ適用されることを覚えておいて下さい。今のところ、すでにリスト中にある検索結果にこれらを適用する方法はありません。
状態フラッグ
検索結果が条件検索エンジンに届く時、「ダウンロード」および「表示」という二つの状態フラッグを持ちます。これらの状態フラッグは始めは「未定義」になっています。その後各々の結果に様々なテストを適用することで、「する」および「しない」にセットされます。
注意:「する」または「しない」のどちらか一方の両方の状態フラッグが定義されるとすぐに条件検索は中断されます、またそれぞれのフラッグがセットされると gtk-gnutella は「表示」して/または「ダウンロード」し続けます。さらに、フラッグの各々の値は一度しかセットされません (後でこれらをセットしようとしても、黙って無視されます) ので、ルールをセットするにおいてはその順序が非常に重要となります。
フィルター
フィルターは基本的に一揃いのルールです。利用者が定義可能なフィルターは三種類あります; 全体フィルター、検索フィルターおよび任意フィルターです;
- 全体フィルターには「振り分け前」および「振り分け後」の二つがあります。「振り分け前」フィルターはそれぞれの検索フィルターに行く前のすべての検索結果に適用されます。これらはある決まったホストを振るい落としたり、あなたがどの種類のファイルを見るかを限定する (つまり、すべての「.html」ファイルは無視する) ために使われます。全体「振り分け後」フィルターの仕事は検索結果がそれらが該当するフィルターを通過した後に行われます。
- 検索フィルターは続行中の特定の検索に関連付けられているフィルターです。あなたが何かを検索する時、すべての検索結果はそれぞれ自身の検索フィルターに送られます。
- 恐らくこの任意フィルターが最も関心をそそるものでしょう。あなたは実際に「サブルーチン」を書くことが可能になります、これは他のいずれかのフィルターから呼び出されます。 例えば「映画」フィルターというものを定義できます。これはある決まった大きさより小さく、かつ一般的な映像ファイルの拡張子のいずれにも一致しないファイルを振るい落とします。その後、あなたの「映画」フィルターを呼び出すために、検索フィルターで「分岐」ルールを使用できます。
ルール
複数の異なる種類のルールがあります。それらの大半には説明通りのフラッグがあります;
- 「条件反転」は当該テストを逆にするために使用されます。一例としてあなたがある mp3 ファイルを探している時に、検索結果が関係のないファイルでごちゃごちゃになっているとします。あなたは、ファイル名が「.mp3」で終わらないのものは「表示しない」、というルールを設定することができます。反転された条件はルールリストで X でマークされます。
- 「有効」フラッグはルールを一時的に有効または無効にするためにチェックされたりチェックを外されたりします。
- 「マークのみ」は特殊なフラッグです、おそらく何か一般的なもので置き換えられそうですが、今は一致する検索結果を他から区別するために検索結果を異なる色でマークするのに使用されます。効果を試すには「マークのみ」をチェックしてターゲットとして「表示しない」を選択して下さい。
サイズルール
サイズルールには三つの似たような用法があります;
- 「最小の大きさ」のみが与えられる場合、ファイルの大きさが指定値より小さいならこのルールは選択したターゲットへの分岐のきっかけになります。これはビデオクリップのような何か大きめのものを探している場合に、小さいファイルを振るい落とすのに使われます。
- 「最小の大きさ」と「最大の大きさ」が定義される場合、大きさがこの二つの値の間ならこのルールはターゲットへ分岐させます。
- 「最大の大きさ」のみが与えられる場合、検索結果の大きさが指定値より多きければ分岐します。
名前ルール
名前ルールは検索結果のファイル名でテストを行います。「条件」のプルダウン・メニューを見てもらえれば、それ自身が十分な説明になっているはずです。
フラッグルール
フラッグルールはホストしているサーバントのフラッグ「安定」「使用中」「PUSH」を基に条件検索をするために使用されます。例えばあなたがファイアウォールの内側にいてプッシュが必要なファイルは受信できない場合、プッシュフラッグがある検索結果のすべてを「表示しない」にセットさせるルールを追加することができます。
分岐ルール
この分岐ルールは「する」または「しない」を直接セットするのに使用されます、あるいは後にテストを行うための任意フィルターの一つを呼び出すためにも使用されます。
IP ルール
IP ルール・フィルターはサーバントの IP アドレスを基に処理を行います。これの典型的な利用法には胡散臭いヒットを返してくる決まったホストを無視することがあります。あるいは決まった IP アドレスや高速なことで知られるネットワークから来る検索結果を自動ダウンロードすることもできます。
URN:SHA1 ルール
この URN:SHA1 ルールは特殊で人の手によって編集することはできません。これらは検索結果ウィンドウでの右クリックメニューを通してのみ追加されます。ある特定のファイルに一致させ、(メニューアイテム「検索結果を永久に破棄」を通じて選ばれれば)「表示しない」または (アイテム「自動ダウンロード」を通して選ばれれば)「ダウンロード」のどちらか一方のフラッグにするのに使用されます。
状態ルール
状態ルールはすでにいくつかの他のテストを通過している検索結果を処理するのに使用されます。このルールの一般的な活用方法には「表示しない」でマークされていない検索結果を自動的にダウンロードすることがあります。下の「ルールセットの見本」にある完全な例を御覧下さい。
ちょっとした情報
- 例えばファイルの大きさや名前を基にした、ある決まった検索結果を常に振るい落としたければ、「無視する」といったような任意フィルタを作成して、一つは「表示しない」へもう一つは「ダウンロードしない」への二つの分岐先を設定します。これで「表示しない」の代わりに「無視する」へ分岐できるようになります。このフィルター処理のやり方は、呼び出し得る残りのフィルターを実行しようする代わりに、即座にフィルター処理を中断します。
- どのファイルがダウンロードされるようにになっているかを知るには、全般 (事後処理) フィルターにルールを追加して下さい。状態フラッグが「ダウンロード」なら「マークのみ」にして「表示しない」に分岐して下さい。そうすると自動ダウンロードされるファイルは検索結果ペインにおいて異なる色で表示されます。
- 一部のソフトウェアは、明らかに受け取った検索すべてに応答して胡散臭い検索結果を返して来るようです。あなたは「!!_YEEHAA_!!_(検索語).exe」や「secret paysite passwords for (検索語).html」のような名前が付いたファイルに遭遇しているかもしれません。Zygo はこれらを一掃する素晴らしいトリックを思い付きました:「clones of the attack」のような滅茶苦茶な単語で検索を開始して下さい、その後各単語と同じ順番の検索結果を削除するために「ファイル名が正規表現「clones.*of.*the.*attack」に一致する, 表示しない」というフィルターを使用して下さい。
フィルターの見本
ここにあるのは最初に述べたようにある「映画」フィルターの見本です。これを任意フィルターとして設定した場合、多くの無用なヒットを振り落とすために、検索フィルターからこのフィルタに分岐できます。新しい検索を実行する際にも、標準フィルターのプルダウンメニューから直接選択できます。
! | 条件 | ターゲット |
大きさが 400000000 バイト (381.5 MB) より小さい | 表示しない | |
ファイル名が「.avi」で終わる | リターン | |
ファイル名が「.mpg」で終わる | リターン | |
常に | 表示しない |
ここにあるのは Remmstein の曲の MPEG 音楽ビデオをダウンロードするフィルターです。条件を反転すること (前に X が付きます) と、「表示しない」および「ダウンロード」というフラッグが立てられていない、すべてのファイルをマークする最後のルールがちょっとした技です。
! | 条件 | ターゲット |
X | ファイル名が単語「rammstein」を含む | 表示しない |
X | ファイル名が「mpg」で終わる | 表示しない |
大きさが 20000000 バイト (19.1 MB) より小さい | 表示しない | |
X | フラッグが「表示しない」になっている | ダウンロード |