NAME

WebService::Bloglines - Easy-to-use Interface for Bloglines Web Services

SYNOPSIS

use WebService::Bloglines;

my $bloglines = WebService::Bloglines->new(
    username => $username,
    password => $password, # password is optional for notify()
    use_liberal => 1,
);

# get the number of unread items using Notifer API
my $notifier = $bloglines->notify();

# list subscriptions using Sync API
my $subscription = $bloglines->listsubs();

# list all feeds
my @feeds = $subscription->feeds();
for my $feed (@feeds) {
    my $title  = $feed->{title};            # title of the feed
    my $url    = $feed->{htmlUrl};          # URL for HTML
    my $type   = $feed->{type};             # "rss"
    my $xml    = $feed->{xmlUrl};           # URL for XML
    my $subid  = $feed->{BloglinesSubId};   # Blogines SubId
    my $unread = $feed->{BloglinesUnread};  # number of unread items
    my $ignore = $feed->{BloglinesIgnore};  # flag to ignore update
}

# list folders
my @folders = $subscription->folders();
for my $folder (@folders) {
    my $title  = $folder->{title};  # title of the folder
    my $unread = $folder->{BloglinesUnread}; # number of unread items
    my $subid  = $folder->{BloglinesSubId};  # Bloglines SubId
    my $ignore = $folder->{BloglinesIgnore}; # flag to ignore update
    my @feeds  = $subscription->feeds_in_folder($subid);
}

# list feeds in root folder
my @root_feeds = $subscription->feeds_in_folder(); # no args or just use $subId = 0

# get new items using Sync API
my $update = $bloglines->getitems($subId);
#  $update = $bloglines->getitems($subId, 1);            # mark unread items as read
#  $update = $bloglines->getitems($subId, 1, $unixtime); # items from $unixtime

# get channel information
my $feed = $update->feed();
$feed->{title};       # channel/title
$feed->{link};        # channel/link
$feed->{description}; # channel/description
$feed->{bloglines}->{siteid};      # bloglines::siteid
$feed->{language};    # language

for my $item ($update->items) {
    my $title       = $item->{title};
    my $creator     = $item->{dc}->{creator};
    my $link        = $item->{link};
    my $guid        = $item->{guid};
    my $description = $item->{description};
    my $pubDate     = $item->{pubDate}; # "Mon, 27 Sep 2004 8:04:17 GMT"
    my $itemid      = $item->{bloglines}->{itemid};
}

# get all unread items in a single call
my @updates = $bloglines->getitems(0);
for my $update (@updates) {
    my $feed = $update->feed();
    for my $item ($update->items) {
        ...
    }
}

DESCRIPTION

WebService::Bloglines priovides you an Object Oriented interface for Bloglines Web Services (BWS). It currently supports Notifier API and Sync API. See http://www.bloglines.com/services/api/ for details.

METHODS

TBD.

TODO

  • Cleaner API to make users free from the difference between OPML and RSS stuff

  • Use LibXML to parse OPML?

WARNING

This module is in beta version. Object interface it provides may be changed later.

AUTHOR

Tatsuhiko Miyagawa <miyagawa@bulknews.net>

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

SEE ALSO

http://www.bloglines.com/

http://www.bloglines.com/services/api/

Blog Hacks: http://hacks.bloghackers.net/ (in Japanese)