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

DATE
    $Date: 2005/12/20 06:46:41 $

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-2005, Aaron Straup Cope. All Rights Reserved.

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

