WWW::Search::Dejanews - class for searching Dejanews
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"; }
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', } );
To make new back-ends, see WWW::Search.
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_setup_search
WWW::Search::setup_search
{_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.
native_retrieve_some
WWW::Search::retrieve_some
WWW::Search::http_request
{cache}
Please tell the author if you find any!
This module adheres to the WWW::Search test suite mechanism.
WWW::Search
See WWW::Search::Dejanews for test cases for the default usage.
WWW::Search::Dejanews
test cases: 'mrfglbqnx AND NoSuchWord' $TEST_EXACTLY 0 'Fett AND stuntboy' $TEST_RANGE 1, 50 'Chewbacca' $TEST_GREATER_THAN 101
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).
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.
1998-08-27: New Dejanews output format
1998-08-20: New Dejanews output format
First publicly-released version.
To install WWW::Search, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::Search
CPAN shell
perl -MCPAN -e shell install WWW::Search
For more information on module installation, please visit the detailed CPAN module installation guide.