Net::Douban::Recommendation - Net::Douban::Recommendation documentation


Net-Douban documentation Contained in the Net-Douban distribution.

Index


Code Index:

NAME

Top

Net::Douban::Recommendation

VERSION

Top

version 1.07

SYNOPSIS

Top

	use Net::Douban::Recommendation;
	my $recom = Net::Douban::Recommendation->new(
		apikey => '....',
        # or
        oauth => $consumer,
	);

	$atom = $recom->get_recom(recomID => ...);
	$atom = $event->get_user_recom(userID => ...);

DESCRIPTION

Top

Interface to douban.com API Event section

METHODS

Top

Most of the get methods return a Net::Douban::Atom object which can be use to get data conveniently

get_recom
get_comments
get_user_recom
post_recom
delete_recom
post_comment
delete_comment

SEE ALSO

Top

Net::Douban Net::Douban::Atom Moose XML::Atom http://www.douban.com/service/apidoc/reference/recommendation

AUTHOR

Top

woosley.xu<redicaps@gmail.com>

COPYRIGHT

Top


Net-Douban documentation Contained in the Net-Douban distribution.

package Net::Douban::Recommendation;

BEGIN {
    $Net::Douban::Recommendation::VERSION = '1.07';
}

use Moose;
use MooseX::StrictConstructor;
use Net::Douban::Atom;
use Carp qw/carp croak/;
with 'Net::Douban::Roles::More';

has 'recomID' => (
    is  => 'rw',
    isa => 'Str',
);

has 'recom_url' => (
    is      => 'rw',
    isa     => 'Url',
    lazy    => 1,
    default => sub { shift->base_url . '/recommendation' },
);

sub get_recom {
    my ($self, %args) = @_;
    $args{recomID} ||= $self->recomID;
    croak "recomID needed!" unless exists $args{recomID};
    return Net::Douban::Atom->new(
        $self->get($self->recom_url . "/$args{recomID}"));
}

sub get_comments {
    my ($self, %args) = @_;
    $args{recomID} ||= $self->recomID;
    croak "recomID needed!" unless $args{recomID};
    return Net::Douban::Atom->new(
        $self->get($self->recom_url . "/$args{recomID}/comments"));
}

sub get_user_recom {
    my ($self, %args) = @_;
    my $uid = delete $args{userID} or croak "userID needed";
    return Net::Douban::Atom->new(
        $self->get($self->user_url . "/$uid/recommendations", %args));
}

sub post_recom {
    my ($self, %args) = @_;
    croak "post xml needed!" unless exists $args{xml};
    return $self->post($self->recom_url . "s", xml => $args{xml});
}

sub delete_recom {
    my ($self, %args) = @_;
    $args{recomID} ||= $self->recomID;
    croak "recomID needed!" unless $args{recomID};
    return $self->delete($self->recom_url . "/$args{recomID}");
}

sub post_comment {
    my ($self, %args) = @_;
    croak "post xml needed!" unless exists $args{xml};
    $args{recomID} ||= $self->recomID;
    croak "recomID needed!" unless $args{recomID};
    return $self->post($self->recom_url . "/$args{recomID}/comments",
        xml => $args{xml});
}

sub delete_comment {
    my ($self, %args) = @_;
    $args{recomID} ||= $self->recomID;
    croak "commentID needed!" unless exists $args{commentID};
    return $self->delete(
        $self->recom_url . "/$args{recomID}/comment/$args{commentID}");
}

no Moose;
__PACKAGE__->meta->make_immutable;
1;

__END__