From f25463a6da58a678b68dbbc13d48ddb389f4299c Mon Sep 17 00:00:00 2001 From: vrag Date: Thu, 23 May 2019 17:33:09 +0300 Subject: [PATCH] Added changes, readme, makefile --- Changes | 5 +++ Makefile.PL | 35 +++++++++++++++ README | 100 +++++++++++++++++++++++++++++++++++++++++++ lib/Mediafire/Api.pm | 25 +---------- 4 files changed, 141 insertions(+), 24 deletions(-) create mode 100644 Changes create mode 100644 Makefile.PL create mode 100644 README diff --git a/Changes b/Changes new file mode 100644 index 0000000..b7b251d --- /dev/null +++ b/Changes @@ -0,0 +1,5 @@ +Revision history for Perl extension Mediafire::Api. + +0.01 Thu May 23 17:26:40 2019 + - original version + -b 5.8.1 -XAn Mediafir::Api diff --git a/Makefile.PL b/Makefile.PL new file mode 100644 index 0000000..7c17fa6 --- /dev/null +++ b/Makefile.PL @@ -0,0 +1,35 @@ +use 5.008001; +use strict; +use warnings; + +use ExtUtils::MakeMaker; +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written. +WriteMakefile( + NAME => 'Mediafire::Api', + LICENSE => 'perl_5', + AUTHOR => 'Pavel Andryushin', + VERSION_FROM => 'lib/Mediafire/Api.pm', # finds $VERSION, requires EU::MM from perl >= 5.5 + PREREQ_PM => { + 'URI::Escape' => 3.31, + 'LWP::UserAgent' => 6.27, + 'LWP::Protocol::https' => 6.06, + 'JSON::XS' => 3.04, + 'File::Basename' => 2.85, + 'Encode' => 2.60, + 'Carp' => 1.3301, + 'MIME::Detect' => 0.10, + 'HTTP::Request' => 6.00, + 'Crypt::Digest::SHA256' => 0.061, + }, + META_MERGE => { + requires => { perl => '5.008008' }, + resources => { + license => 'http://dev.perl.org/licenses/', + repository => 'https://github.com/vrag86/Mediafire-Api', + bugtracker => 'https://github.com/vrag86/Mediafire-Api/issues' + }, + }, + AUTHOR => 'vrag ', + LICENSE => 'perl', +); diff --git a/README b/README new file mode 100644 index 0000000..4cacad3 --- /dev/null +++ b/README @@ -0,0 +1,100 @@ +NAME + Mediafire::Api - Upload and Download files from mediafire.com file + sharing + +VERSION + version 0.01 + +SYNOPSYS +METHODS + use Mediafire::Api; + + # Create Mediafire::Api object + my $mediafire = Mediafire::Api->new(); + + # Login on service + $mediafire->login( + -login => $login, + -password => $password, + ); + + # Upload file to server + my $remote_dir = 'myfiles'; # Directory name on server + my $filename = '/tmp/test_file.zip'; # Full file path to upload + + # Upload file on server. Return Mediafire::Api::UploadFile object + my $mediafire_file = $mediafire->uploadFile( + -file => $filename, + -path => $remote_dir, + ); + # Get uploaded file key + print "Uploaded file key: " . $mediafire_file->getDouploadKey() . "\n"; + + # Find file on mediafire.com by name. Return arrayref to Mediafire::Api::File objects + my $find_result = $mediafire->findFileByName( + -filename => 'file_to_find.txt', + ); + if (@$find_result) { + print "Found files: " . join(' ', map {$_->name()} @$find_result); + } + + # Download file from mediafire.com + $mediafire->downloadFile( + -mediafire_file => $mediafire_file, + -dest_file => './test_file.zip', + ); + +Upload Files to server + new() + login(%opt) +Mediafire::Api::File + name + Set/Get name of file $mediafire_file->name("New name"); my $name = + $mediafire->name; + + key + Set/Get download key of file + + $mediafire_file->key("downloadfilekey"); + my $key = $mediafire_file->key; + + size + Set/Get size of file + + $mediafire->size(2343); + my $size = $mediafire->size; + + hash + Set/Get sha256sum hashsum of file + + $mediafire_file->hash('dffdf'); + my $hash = $mediafire_file->hash; + +Find files on mediafire.com + findFileByName(%opt) + Return arrayref with Mediafire::Api::file objects + + %opt: + -filename => Name of file to find + +Download files from mediafire.com + downloadFile(%opt) + Download file from mediafire.com to $dest_file + + %opt: + -mediafire_file => Mediafire::Api::File object to download + -dest_file => Name of file on local disk, in which will be downloaded mediafire file + +DEPENDENCE + LWP::UserAgent, JSON::XS, URI::Escape, Encode, HTTP::Request, Carp, + File::Basename, MIME::Detect, HTTP::Request, Crypt::Digest::SHA256 + +AUTHORS + * Pavel Andryushin + +COPYRIGHT AND LICENSE + This software is copyright (c) 2019 by Pavel Andryushin. + + This is free software; you can redistribute it and/or modify it under + the same terms as the Perl 5 programming language system itself. + diff --git a/lib/Mediafire/Api.pm b/lib/Mediafire/Api.pm index f2e8a20..b4d780c 100644 --- a/lib/Mediafire/Api.pm +++ b/lib/Mediafire/Api.pm @@ -244,29 +244,6 @@ sub downloadFile { } -=pod Вынести в отдельный класс с проверкой наличия такой директории -sub createDir { - my ($self, %opt) = @_; - my $dirname = $opt{-dirname} // croak "You must specify '-dirname' param"; - - my $url = 'https://www.mediafire.com/api/1.4/folder/create.php'; - my %param = ( - 'r' => 'sloe', - 'foldername' => $dirname, - 'parent_key' => '', - 'session_token' => $self->{session_token}, - 'response_format' => 'json', - ); - $url . = '?' . join('&', map {"$_=" . uri_escape($param{$_})} keys %param); - my $res = $self->{ua}->get($url); - my $code = $res->code; - if ($code ne '200') { - croak "Can't create dir '$dirname'. Code: $code"; - } - my $json_res = decode_json($res->decoded_content); - p $json_res; -} -=cut 1; @@ -383,7 +360,7 @@ Download file from mediafire.com to $dest_file =head1 DEPENDENCE -L, L, L, L, L, L, L, L +L, L, L, L, L, L, L, L, L, L =head1 AUTHORS