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"

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.96

DATE

$Date: 2006/01/13 17:09:11 $

AUTHOR

Aaron Straup Cope <ascope@cpan.org>

SEE ALSO

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

NOTES

The version number (0.9) reflects the fact the del.icio.us API still has a great big "I am a moving target" disclaimer around its neck.

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

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.