The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::Safari - Wrapper for Safari Online Books API

SYNOPSIS

  use Net::Safari
  
  my $ua = Net::Safari->new(token => 'YOUR_SAFARI_TOKEN');

  my $response = $ua->search();

  if($response->is_success()) {
      print $response->as_string();
  }
  else {
      print "Error:" . $response->message();
  }

DESCRIPTION

You can read more about Safari webservices here: http://safari.oreilly.com/affiliates/?p=web_services

METHODS

new()

  $agent = Net::Safari->new( token => 'MY_SAFARI_TOKEN' );

Construct a Safari object. Token seems optional.

SEARCH

BOOKTITLE

  $res = $ua->search( BOOKTITLE => 'samba' );

  Search book titles. This is currently broken in Safari. 
  See: http://safari.oreilly.com/xmlapi/?search=BOOKTITLE%20LIKE%20XML

TITLE

  $res = $ua->search( TITLE => 'samba' );

  Searches section titles. Will sometimes return book titles if it can't find
  any sections. I consider this a bug.
  

ISBN

  $res = $ua->search( ISBN  => '059600415X' );

  ISBN must be a complete ISBN, partial ISBN searches don't work.

CODE

  $res = $ua->search( CODE => 'Test::More' );

  Search within code fragments. This is usually a lot more than programlistings. Code snippets that appear within a sentence are usually semanticly tagged as code. So you're just as likely to get text as you are to get program listings with this search.

NOTE

  $res = $ua->search( NOTE => "web services" );

  The documentation says, "Finds matches within Tips and How-Tos." However the results seem to indicate hits in the content. 

CATEGORY

  $res = $ua->search( CATEGORY => "itbooks.security" );

  Search within a category. The list of categories is here:
  http://safari.oreilly.com/affiliates/portals/safari/2004-07-30_Safari_Books_Category_Metadata_Abbreviations.doc

AUTHOR

  $res = $ua->search( AUTHOR => 'Wall' );
  $res = $ua->search( AUTHOR => 'Wall, Larry' );
  $res = $ua->search( AUTHOR => 'Larry Wall' );

  Search by author.

PUBLDATE

  $res = $ua->search( PUBLDATE => '> 20041001' );
  $res = $ua->search( PUBLDATE => '< 20030101' );

  Search before or after a given publish date. The comparison operator, > or < is required.

PUBLISHER

  $res = $ua->search( PUBLISHER => "O'Reilly" );

  Search by publisher.

BUGS

SUPPORT

AUTHOR

  Tony Stubblebine
  cpan@tonystubblebine.com

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO