The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::Commons::Image - Data object for Wikimedia Commons image.

SYNOPSIS

 use Data::Commons::Image;

 my $obj = Data::Commons::Image->new(%params);
 my $author = $obj->author;
 my $comment = $obj->comment;
 my $commons_name = $obj->commons_name;
 my $dt_created = $obj->dt_created;
 my $dt_uploaded = $obj->dt_uploaded;
 my $height = $obj->height;
 my $id = $obj->id;
 my $license = $obj->license;
 my $page_id = $obj->page_id;
 my $size = $obj->size;
 my $url = $obj->url;
 my $url_cb = $obj->url_cb;
 my $width = $obj->width;

DESCRIPTION

Data object for Wikimedia Commons image. Inherits Data::Image common object.

METHODS

new

 my $obj = Data::Commons::Image->new(%params);

Constructor.

Returns instance of object.

  • author

    Image author. It's optional. Default value is undef.

  • comment

    Image comment. It's optional. Default value is undef.

  • commons_name

    Image name in Wikimedia Commons. It's required.

  • dt_created

    Date and time the image was created. Value must be DateTime object. It's optional.

  • dt_uploaded

    Date and time the image was uploaded to Wikimedia Commons. Value must be DateTime object. It's optional.

  • height

    Image height. It's optional. Default value is undef.

  • id

    Image id. It's optional. Default value is undef.

  • license

    Image license. It's optional. Default value is undef.

  • page_id

    Image page id on Wikimedia Commons. It's used for structured data with 'M' prefix. It's optional. Default value is undef.

  • size

    Image size. It's optional. Default value is undef.

  • url

    URL of image. It's optional. Default value is undef.

  • url_cb

    URL callback. To get URL from code. It's optional. Default value is undef.

  • width

    Image width. It's optional. Default value is undef.

author

 my $author = $obj->author;

Get image author.

Returns string.

comment

 my $comment = $obj->comment;

Get image comment.

Returns string.

commons_name

 my $commons_name = $obj->commons_name;

Get image name in Wikimedia Commons.

Returns string.

dt_created

 my $dt_created = $obj->dt_created;

Get date and time the image was created.

Returns DateTime object.

dt_uploaded

 my $dt_uploaded = $obj->dt_uploaded;

Get date and time the image was uploaded to Wikimedia Commons.

Returns DateTime object.

height

 my $height = $obj->height;

Get image height.

Returns number.

id

 my $id = $obj->id;

Get image id.

Returns number.

license

 my $license = $obj->license;

Get image license.

Returns string.

page_id

 my $page_id = $obj->page_id;

Get image page id.

Returns number.

size

 my $size = $obj->size;

Get image size.

Returns number.

url

 my $url = $obj->url;

Get URL of image.

Returns string.

url_cb

 my $url_cb = $obj->url_cb;

Get URL callback.

Returns code.

width

 my $width = $obj->width;

Get image width.

Returns number.

 new():
         From Data::Image:
                 From Mo::utils:
                         Parameter 'author' has length greater than '255'.
                                 Value: %s
                         Parameter 'comment' has length greater than '1000'.
                                 Value: %s
                         Parameter 'dt_created' must be a 'DateTime' object.
                                 Value: %s
                                 Reference: %s
                         Parameter 'height' must a number.
                                 Value: %s
                         Parameter 'id' must a number.
                                 Value: %s
                         Parameter 'size' must a number.
                                 Value: %s
                         Parameter 'url' has length greater than '255'.
                                 Value: %s
                         Parameter 'url_cb' must be a code.
                                 Value: %s
                         Parameter 'width' must a number.
                                 Value: %s
         Parameter 'commons_name' is required.
         Parameter 'commons_name' has length greater than '255'.
                 Value: %s
         Parameter 'dt_uploaded' must be a 'DateTime' object.
                 Value: %s
                 Reference: %s
         Parameter 'page_id' must a number.
                 Value: %s

EXAMPLE

 use strict;
 use warnings;

 use Data::Commons::Image;
 use DateTime;

 my $obj = Data::Commons::Image->new(
         'author' => 'Zuzana Zonova',
         'comment' => 'Michal from Czechia',
         'commons_name' => 'Michal_from_Czechia.jpg',
         'dt_created' => DateTime->new(
                 'day' => 1,
                 'month' => 1,
                 'year' => 2022,
         ),
         'dt_uploaded' => DateTime->new(
                 'day' => 14,
                 'month' => 7,
                 'year' => 2022,
         ),
         'height' => 2730,
         'license' => 'cc-by-sa-4.0',
         'page_id' => '95648152',
         'size' => 1040304,
         'url' => 'https://upload.wikimedia.org/wikipedia/commons/a/a4/Michal_from_Czechia.jpg',
         'width' => 4096,
 );

 # Print out.
 print 'Author: '.$obj->author."\n";
 print 'Comment: '.$obj->comment."\n";
 print 'Wikimedia Commons name: '.$obj->commons_name."\n";
 print 'Height: '.$obj->height."\n";
 print 'Size: '.$obj->size."\n";
 print 'URL: '.$obj->url."\n";
 print 'Width: '.$obj->width."\n";
 print 'License: '.$obj->license."\n";
 print 'Page id: '.$obj->page_id."\n";
 print 'Date and time the photo was created: '.$obj->dt_created."\n";
 print 'Date and time the photo was uploaded: '.$obj->dt_uploaded."\n";

 # Output:
 # Author: Zuzana Zonova
 # Comment: Michal from Czechia
 # Wikimedia Commons name: Michal_from_Czechia.jpg
 # Height: 2730
 # Size: 1040304
 # URL: https://upload.wikimedia.org/wikipedia/commons/a/a4/Michal_from_Czechia.jpg
 # Width: 4096
 # License: cc-by-sa-4.0
 # Page id: 95648152
 # Date and time the photo was created: 2022-01-01T00:00:00
 # Date and time the photo was uploaded: 2022-07-14T00:00:00

DEPENDENCIES

Data::Image, Mo, Mo::utils.

REPOSITORY

https://github.com/michal-josef-spacek/Data-Commons-Image

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2022-2023 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.06