API-Instagram
view release on metacpan or search on metacpan
lib/API/Instagram/Media.pm view on Meta::CPAN
sub _build_created_time { shift->_data->{created_time} }
sub _build__data {
my $self = shift;
my $url = sprintf "media/%s", $self->id;
$self->_api->_get( $url );
}
############################################################
# Attributes coercion that API::Instagram object reference #
############################################################
sub _coerce_user { API::Instagram->instance->user ( $_[0] ) };
sub _coerce_location { API::Instagram->instance->location( $_[0] ) if $_[0] };
sub _coerce_tags {
my $data = $_[0];
return if ref $data ne 'ARRAY';
[ map { API::Instagram->instance->tag($_) } @$data ]
};
sub _coerce_users_in_photo {
my $data = $_[0];
return if ref $data ne 'ARRAY';
[
map {{
user => API::Instagram->instance->user( $_->{user} ),
position => $_->{position},
}} @$data
]
};
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
API::Instagram::Media - Instagram Media Object
=head1 VERSION
version 0.013
=head1 SYNOPSIS
my $media = $instagram->media(3);
printf "Caption: %s\n", $media->caption;
printf "Posted by %s (%d likes)\n\n", $media->user->username, $media->likes;
my $location = $media->location;
printf "Media Location: %s (%f,%f)", $location->name, $location->latitude, $location->longitude;
=head1 DESCRIPTION
See L<http://instagr.am/developer/endpoints/media/>.
=head1 ATTRIBUTES
=head2 id
Returns media id.
=head2 type
Returns media type.
=head2 user
Returns the L<API::Instagram::User> object of the user who posted the media.
=head2 link
Returns media shortlink.
=head2 filter
Returns media filter.
=head2 tags
Returns a list L<API::Instagram::Tag> objects of media tags.
=head2 location
Returns media L<API::Instagram::Location> object.
=head2 images
my $thumbnail = $media->images->{thumbnail};
printf "URL: %s (%d x %d)" $thumbnail->{url}, $thumbnail->{width}, $thumbnail->{height};
Returns media images options and details.
=head2 videos
my $standart = $media->videos->{standart_resolution};
printf "URL: %s (%d x %d)" $standart->{url}, $standart->{width}, $standart->{height};
Returns media videos options and details, when video type.
=head2 users_in_photo
for my $each ( @{ $media->users_in_photo } ) {
my $user = $each->{user};
my $position = $each->{position};
printf "%s is at %f, %f\n", $user->username, $position->{x}, $position->{y};
}
Returns a list of L<API::Instagram::User> objects of users tagged in the media with their coordinates.
=head2 caption
lib/API/Instagram/Media.pm view on Meta::CPAN
Note: C<1> as parameter also updates total likes, total comments and last comments.
=head2 get_likes
my @likers = $media->get_likes( count => 5 );
Returns a list of L<API::Instagram::User> objects of users who liked the media.
Accepts C<count>.
=head2 like
$media->like;
Sets a like on the media by the authenticated user.
=head2 dislike
$media->dislike;
Removes a like on the media by the authenticated user.
=head2 comments
printf "Total Comments: %d\n", $media->comments; # Total comments when object was created
or
printf "Total Comments: %d\n", $media->comments(1); # Up to date total comments
Returns media total comments.
If you set C<1> as parameter it will renew all media data and return an up-do-date total comments.
Note: C<1> as parameter also updates total likes, last likes and last comments.
=head2 last_comments
for my $comment ( @{ $media->last_comments } ) {
printf "%s: %s\n", $comment->from->username, $comment->text;
}
Returns a list of C<API::Instagram::Media::Comment> of the last comments on the media.
If you set C<1> as parameter it will renew all media data and return an up-do-date list.
Note: C<1> as parameter also updates total likes, total comments and last likes.
=head2 get_comments
my @comments = $media->get_comments( count => 5 );
Returns a list of L<API::Instagram::Media::Comment> objects of the media.
Accepts C<count>.
=head2 comment
$media->comment("Nice pic!");
Creates a comment on the media.
Note: This endpoint is restrict, check L<https://help.instagram.com/contact/185819881608116> for more information.
=head1 AUTHOR
Gabriel Vieira <gabriel.vieira@gmail.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Gabriel Vieira.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 0.463 second using v1.01-cache-2.11-cpan-524268b4103 )