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.