NAME

Net::Delicious - OOP for the del.icio.us API

SYNOPSIS

  use Net::Delicious;
  use Log::Dispatch::Screen;

  my $del = Net::Delicious->new({user => "foo",
				 pswd => "bar"});

  foreach my $p ($del->recent_posts()) {
      print $p->description()."\n";
  } 

DESCRIPTION

OOP for the del.icio.us API

PACKAGE METHODS

__PACKAGE__->new(\%args || Config::Simple)

Arguments to the Net::Delicious object may be defined in one of three ways : As a single hash reference or; As a reference to a Config::Simple object; as a path to a file that may be read by the Config::Simple.

The first option isn't going away any time soon but should be considered as deprecated. Valid hash reference arguments are :

  • user

    String. required

    Your del.icio.us username.

  • pswd

    String. required

    Your del.icio.us password.

  • updates

    String.

    The path to a directory where the timestamp for the last update to your bookmarks can be recorded. This is used by the all_posts method to prevent abusive requests.

    Default is the current user's home directory, followed by a temporary directory as determined by File::Temp.

  • debug

    Boolean.

    Add a Log::Dispatch::Screen dispatcher to log debug (and higher) notices. Notices will be printed to STDERR.

Config::Simple options are expected to be grouped in a "block" labeled delicious. Valid options are :

  • user

    String. required

    Your del.icio.us username.

  • pswd

    String. required

    Your del.icio.us password.

  • updates

    String.

    The path to a directory where the timestamp for the last update to your bookmarks can be recorded. This is used by the all_posts method to prevent abusive requests.

    Default is the current user's home directory, followed by a temporary directory as determined by File::Temp.

  • debug

    Boolean.

    Add a Log::Dispatch::Screen dispatcher to log debug (and higher) notices. Notices will be printed to STDERR.

Returns a Net::Delicious object or undef if there was a problem creating the object.

OBJECT METHODS

$obj->add_post(\%args)

Makes a post to del.icio.us.

Valid arguments are :

  • url

    String. required

    Url for post

  • description

    String.

    Description for post.

  • extended

    String.

    Extended for post.

  • tags

    String.

    Space-delimited list of tags.

  • dt

    String.

    Datestamp for post, format "CCYY-MM-DDThh:mm:ssZ"

  • shared

    Boolean. (Technically, you need to pass the string "no" but N:D will handle 1s and 0s.)

    Make the post private. Default is true.

  • replace

    Boolean. (Technically, you need to pass the string "no" but N:D will handle 1s and 0s.)

    Don't replace post if given url has already been posted. Default is true.

Returns true or false.

$obj->delete_post(\%args)

Delete a post from del.icio.us.

Valid arguments are :

  • url

    String. required

Returns true or false.

$obj->posts_per_date(\%args)

Get a list of dates with the number of posts at each date.

Valid arguments are :

  • tag

    String.

    Filter by this tag.

Returns a list of Net::Delicious::Date objects when called in an array context.

Returns a Net::Delicious::Iterator object when called in a scalar context.

$obj->recent_posts(\%args)

Get a list of most recent posts, possibly filtered by tag.

Valid arguments are :

  • tag

    String.

    Filter by this tag.

  • count

    Int.

    Number of posts to return. Default is 20; maximum is 100

Returns a list of Net::Delicious::Post objects when called in an array context.

Returns a Net::Delicious::Iterator object when called in a scalar context.

$obj->all_posts()

Returns a list of Net::Delicious::Post objects when called in an array context.

Returns a Net::Delicious::Iterator object when called in a scalar context.

If no posts have been added between calls to this method, it will return an empty list (or undef if called in a scalar context.)

$obj->all_posts_for_tag(\%args)

This is a just a helper method which hides a bunch of API calls behind a single method.

Valid arguments are :

  • tag

    String. required

    The tag you want to retrieve posts for.

Returns a list of Net::Delicious::Post objects when called in an array context.

Returns a Net::Delicious::Iterator object when called in a scalar context.

$obj->update()

Returns return the time of the last update formatted as a W3CDTF string.

$obj->posts(\%args)

Get a list of posts on a given date, filtered by tag. If no date is supplied, most recent date will be used.

Valid arguments are :

  • tag

    String.

    Filter by this tag.

  • dt

    String.

    Filter by this date.

Returns a list of Net::Delicious::Post objects when called in an array context.

Returns a Net::Delicious::Iterator object when called in a scalar context.

$obj->tags()

Returns a list of tags.

$obj->rename_tag(\%args)

Renames tags across all posts.

Valid arguments are :

  • old

    String. required

    Old tag

  • new

    String. required

    New tag

Returns true or false.

$obj->bundles()

Returns a list of Net::Delicious::Bundle objects when called in an array context.

Returns a Net::Delicious::Iterator object when called in a scalar context.

$obj->set_bundle(\%args)

Valid arguments are :

  • bundle

    String. required

    The name of the bundle to set.

  • tags

    String. required

    A space-separated list of tags.

Returns true or false

$obj->delete_bundle(\%args)

Valid arguments are :

  • bundle

    String. required

    The name of the bundle to set

Returns true or false

$obj->inbox_for_date(\%args)

This method is no longer part of the del.icio.us API. It will be removed from Net::Delicious in a subsequent release.

$obj->inbox_dates()

This method is no longer part of the del.icio.us API. It will be removed from Net::Delicious in a subsequent release.

$obj->inbox_subscriptions()

This method is no longer part of the del.icio.us API. It will be removed from Net::Delicious in a subsequent release.

$obj->add_inbox_subscription(\%args)

This method is no longer part of the del.icio.us API. It will be removed from Net::Delicious in a subsequent release.

$obj->remove_inbox_subscription(\%args)

This method is no longer part of the del.icio.us API. It will be removed from Net::Delicious in a subsequent release.

$obj->logger()

Returns a Log::Dispatch object.

ERRORS

Errors are logged via the object's logger method which returns a Log::Dispatch object. If you want to get at the errors it is up to you to provide it with a dispatcher.

VERSION

0.99

DATE

$Date: 2006/06/08 14:50:15 $

AUTHOR

Aaron Straup Cope <ascope@cpan.org>

SEE ALSO

http://del.icio.us/doc/api

NOTES

This package implements the API in its entirety as of DATE.

Version 0.99 is a quick maintenance release to reflect changes to the del.icio.us API. Version 1.0 will remain fully backwards compatible but will introduce the following changes :

  • Allow for results to be parsed by XML::LibXML or XML::XPath and returned as like objects.

  • Allow N:D objects to be invoked in a 'not strict' mode if users want or need to pass custom API method arguments - in the event that features are added to the API and this package is not updated in a timely fashion.

  • Allow users to specify an endpoint, for basically the same reasons as above.

  • Remove methods that are no longer part of the API.

LICENSE

Copyright (c) 2004-2006, Aaron Straup Cope. All Rights Reserved.

This is free software, you may use it and distribute it under the same terms as Perl itself.