NAME
WebService::Hatena::Diary - A Perl Interface for Hatena::Diary AtomPub API
SYNOPSIS
use WebService::Hatena::Diary;
my $diary = WebService::Hatena::Diary->new({
username => $username,
password => $password,
});
$diary->ua->timeout(10) # set ua option
# list
my @entries = $diary->list;
# create
my $edit_uri = $diary->create({
title => $title,
content => $content,
});
# create on specified date
$edit_uri = $diary->create({
date => $date, # YYYY-MM-DD
title => $title,
content => $content,
});
# retrieve
my $entry = $diary->retrieve($edit_uri);
print $entry->{date};
print $entry->{title};
print $entry->{content};
print $entry->{hatena_syntax};
# update
$diary->update($edit_uri, {
title => $new_title,
content => $new_content,
});
# delete
$diary->delete($edit_uri);
# draft mode
$diary = WebService::Hatena::Diary->new({
mode => 'draft',
username => $username,
password => $password,
});
# publish (draft mode only)
$diary->publish($edit_uri);
DESCRIPTION
WebService::Hatena::Diary is a simple wrapper of Hatena::Diary AtomPub API. This provides CRUD interfaces for Hatena::Diary and it's draft entries.
METHOD
new ( \%args )
my $diary = WebService::Hatena::Diary->new({
username => $username,
dusername => $dusername,
password => $password,
mode => $mode,
});
Create a WebService::Hatena::Diary object.
username
Your Hatena id.
dusername (Optional)
Diary name that you want to manipulate. Default is username.
password
Password for your Hatena id.
mode (Optional)
API mode (
blog
|draft
). Default isblog
.
ua
$diary->ua;
Returns a UserAgent of this API.
errstr
$diary->errstr;
Returns a error messages of the last error.
list
my @entries = $diary->list;
Returns a LIST of entries of the specified (blog|draft). Each entry has values blow as a HASH object:
edit_uri
Edit URI is a URI to identify a entry.
title
Title of a entry.
content
Content of a entry as a html format.
date
YYYY-MM-DD style date of a entry.
create ( \%args )
my $edit_uri = $diary->create({
title => $title,
content => $content,
date => $date,
});
Create a new entry of the specified (blog|draft). Returns Edit URI of a created entry if succeed.
You have to pass date
on a YYYY-MM-DD format.
retrieve ( $edit_uri )
my $entry = $diary->retrieve($edit_uri);
Returns a entry specified by an Edit URI as a HASH object like below:
title
Title of a entry.
content
Content of a entry as a html format.
hatena_syntax
Content of a entry as a hatena syntax format.
date
YYYY-MM-DD style date of a entry.
update ( $edit_uri, \%args )
$diary->update($edit_uri, {
title => $title,
content => $content,
});
Update a entry specified by an Edit URI. Returns 1 if succeed.
delete ( $edit_uri )
$diary->delete($edit_uri);
Delete a entry specified by an Edit URI. Returns 1 if succeed.
publish ( $edit_uri )
$diary->publish($edit_uri);
Publish a draft entry specified by an Edit URI. Returns 1 if succeed.
If you publish a draft entry, the entry will be deleted from draft, and a new blog entry will be created.
DEVELOPMENT
If you want to see latest version of this module, please see https://github.com/hakobe/webservice-hatena-diary/tree
AUTHOR
Yohei Fushii <hakobe@gmail.com>
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.