Jiro Nishiguchi > WebService-PhotoZou-0.01 > WebService::PhotoZou

Download:
WebService-PhotoZou-0.01.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source  

NAME ^

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

SYNOPSIS ^

  use WebService::PhotoZou;

  my $api = WebService::PhotoZou->new(
      username => $username,
      password => $password,
      site     => 'jp',      # if you use photozou.com, set 'com'.
  );

  my $photo_id = $api->photo_add(
      photo       => $filename, # required
      album_id    => $album_id, # required
      photo_title => $title,
      tag         => $tag,
      comment     => $comment,
      date_type   => 'date',    # 'exif' or 'date'
      year        => $year,     # required when date_type is 'date'
      month       => $month,    # required when date_type is 'date'
      day         => $day,      # required when date_type is 'date'
  ) or die $api->errormsg;

  my $album_id = $api->photo_add_album(
      name                   => $name,        # required
      description            => $description,
      perm_type              => 'allow',      # 'allow' or 'deny'
      perm_type2             => 'user_group', # 'net' or 'everyone' or 'all or 'user_group'
      perm_id                => $perm_id,     # you can set it when you set perm_type2 'user_group'
      order_type             => 'upload',     # 'upload' or 'date' or 'comment' or 'file_name'
      copyright_type         => 'normal',     # 'normal' or 'creativecommons'
      copyright_commercial   => 'yes',        # 'yes' or 'no'
      copyright_modification => 'yes',        # 'yes' or 'no' or 'share'
  ) or die $api->errormsg;

  my $albums = $api->photo_album or die $api->errormsg;
  for my $album (@{$albums}) {
      $album->{album_id};
      $album->{user_id};
      $album->{name};
      $album->{description};
      $album->{perm_type};
      $album->{perm_type2};
      $album->{perm_id};
      $album->{order_type};
      $album->{photo_num};
  }

  my $photos = $api->search_public(
      type                    => 'photo',  # 'photo' or 'video' or 'all'
      order_type              => 'date',   # 'date' or 'favorite'
      keyword                 => $keyword,
      copyright               => 'normal', # 'normal' or 'creativecommons' or 'all'
      copyright_commercial    => 'yes',    # you can set 'yes' or 'no' when you set copyright 'creativecommons'
      copyright_modifications => 'yes',    # you can set 'yes' or 'no' or 'share' when you set copyright 'creativecommons'
      limit                   => 1000,
      offset                  => 0,
  ) or die $api->errormsg;
  for my $photo (@{$photos}) {
      $photo->{photo_id};
      $photo->{user_id};
      $photo->{album_id};
      $photo->{photo_title};
      $photo->{favorite_num};
      $photo->{comment_num};
      $photo->{copyright};
      $photo->{copyright_commercial};
      $photo->{copyright_modifications};
      $photo->{regist_time};
      $photo->{url};
      $photo->{image_url};
      $photo->{original_image_url};
      $photo->{thumbnail_image_url};
  }

  my $groups = $api->user_group or die $api->errormsg;
  for my $group (@{$groups}) {
      $group->{group_id};
      $group->{name};
      $group->{user_num};
  }

DESCRIPTION ^

This module priovides you an Object Oriented interface for PhotoZou Web Services.

PhotoZou (http://photozou.jp/) is a Internet-based service that can easily share photo and album.

METHODS ^

All API methods returns undef on failure. You can get error objects by errors or get formatted message by errormsg.

new([%options])

Returns an instance of this module. The following option can be set:

  username
  password
  site     # 'jp' or 'com'

ua([$ua])

Set or get an LWP::UserAgent instance.

username([$username])

Accessor for username.

password([$password])

Accessor for password.

photo_add(%options)

Add photo/movie. Returns added photo/movie's id. The following option can be set:

  photo       # must be set filename.
  album_id    # required
  photo_title
  tag
  comment
  date_type   # 'exif' or 'date'
  year        # required when date_type is 'date'
  month       # required when date_type is 'date'
  day         # required when date_type is 'date'

See the official API documents about detail of options and return values.

photo_add_album(%options)

Add album. Returns added album's id. The following option can be set:

  name                   # required
  description
  perm_type              # 'allow' or 'deny'
  perm_type2             # 'net' or 'everyone' or 'all or 'user_group'
  perm_id                # you can set when you set perm_type2 'user_group'
  order_type             # 'upload' or 'date' or 'comment' or 'file_name'
  copyright_type         # 'normal' or 'creativecommons'
  copyright_commercial   # 'yes' or 'no'
  copyright_modification # 'yes' or 'no' or 'share'

photo_album

Returns your albums list. The hashref contains the following fields:

  album_id
  user_id
  name
  description
  perm_type
  perm_type2
  perm_id
  order_type
  photo_num

search_public(%options)

Search public photo/movie. The following option can be set:

  type                    # 'photo' or 'video' or 'all'
  order_type              # 'date' or 'favorite'
  keyword
  copyright               # 'normal' or 'creativecommons' or 'all'
  copyright_commercial    # you can set 'yes' or 'no' when you set copyright 'creativecommons'
  copyright_modifications # you can set 'yes' or 'no' or 'share' when you set copyright 'creativecommons'
  limit
  offset

Returns result objects as arrayref. The hashref contains the following fields:

  photo_id
  user_id
  album_id
  photo_title
  favorite_num
  comment_num
  copyright
  copyright_commercial
  copyright_modifications
  regist_time
  url
  image_url
  original_image_url
  thumbnail_image_url

user_group

Returns your user groups as arrayref. The hashref contains the following fields:

  group_id
  name
  user_num

errors

Returns hashref of error objects as arrayref. The hashref contains the following fields:

  code
  msg

errormsg

Returns formatted error message.

nop

API test method.

AUTHOR ^

Jiro Nishiguchi <jiro@cpan.org>

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

SEE ALSO ^

syntax highlighting: