The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WWW::Search::Dejanews - class for searching Dejanews

SYNOPSIS

  use WWW::Search;
  my $oSearch = new WWW::Search('Dejanews');
  my $sQuery = WWW::Search::escape_query("sushi restaurant Columbus Ohio",);
  $oSearch->native_query($sQuery,
                         {'defaultOp' => 'AND'});
  while (my $oResult = $oSearch->next_result())
    { print $oResult->url, "\n"; }

DESCRIPTION

This class is a Dejanews specialization of WWW::Search. It handles making and interpreting Dejanews searches http://www.dejanews.com.

This class exports no public interface; all interaction should be done through WWW::Search objects.

Dejanews DOES support wildcards (asterisk at end of word).

The default behavior is the OR of the query terms. If you want AND, insert 'AND' between all the query terms in your query string:

  $oSearch->native_query(escape_query('Dorothy AND Toto AND Oz'));

or call native_query like this:

  $oSearch->native_query(escape_query('Dorothy Toto Oz'), {'defaultOp' => 'AND'} );

The URLs returned point to "text only" articles from Dejanews' server.

If you want to search particular fields, add the escaped query for each field to the second argument to native_query (sorry, this has not been tested):

  $oSearch->native_query($sQuery, 
                         {'groups'   => 'comp.lang.perl.misc',
                          'subjects' => 'WWW::Search',
                          'authors'  => 'thurn',
                          'fromdate' => 'Jan 1 1997',
                          'todate'   => 'Dec 31 1997', } );

SEE ALSO

To make new back-ends, see WWW::Search.

HOW DOES IT WORK?

native_setup_search is called (from WWW::Search::setup_search) before we do anything. It initializes our private variables (which all begin with underscore) and sets up a URL to the first results page in {_next_url}.

native_retrieve_some is called (from WWW::Search::retrieve_some) whenever more hits are needed. It calls WWW::Search::http_request to fetch the page specified by {_next_url}. It then parses this page, appending any search hits it finds to {cache}. If it finds a ``next'' button in the text, it sets {_next_url} to point to the page for the next set of results, otherwise it sets it to undef to indicate we''re done.

BUGS

Please tell the author if you find any!

TESTING

This module adheres to the WWW::Search test suite mechanism.

See WWW::Search::Dejanews for test cases for the default usage.

test cases: 'mrfglbqnx AND NoSuchWord' $TEST_EXACTLY 0 'Fett AND stuntboy' $TEST_RANGE 1, 50 'Chewbacca' $TEST_GREATER_THAN 101

AUTHOR

WWW::Search::Dejanews is maintained by Martin Thurn (MartinThurn@iname.com); original version for WWW::Search by Cesare Feroldi de Rosa (C.Feroldi@it.net).

LEGALESE

THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

VERSION HISTORY

1.4

1998-08-27: New Dejanews output format

1.3

1998-08-20: New Dejanews output format

1.2

First publicly-released version.