Files
Mediafire-Api/lib/Mediafire/Api/.UploadFile.pm.swp

22 lines
36 KiB
Plaintext
Raw Normal View History

2019-05-14 17:15:56 +03:00
b0VIM 7.4<00><><EFBFBD>\<5C>Hvrageeepcserver~vrag/perl/mediafire/lib/Mediafire/Api/UploadFile.pmutf-8 3210#"! U
<00>
<00>
z
y
(
<00> <00> <00> <00> F @ & <00><00><00><00><00><00>yO#<00><00><00><00><00>b\[JI<00><00><00>xutWBA<00><00><00><00><00><00>_+<00><00><00>kG@?<00><00><00>|b <00><00><00><00>^XW? $code = my $response = $json_res->{response}; # Get json response } croak "Can't parse respone '" . $res->decoded_content . "' to json"; if ($@) { }; decode_json($res->decoded_content); my $json_res = eval { } croak "Wrong response code checkUploadFile(). Url: '$full_url'. Code: $code"; if ($code ne '200') { my $code = $res->code; my $res = $self->{ua}->get($full_url); my $full_url = $url . '?' . $param_str; my $param_str = join('&', map {"$_=" . uri_escape($param{$_})} keys %param); ); $microseconds => '', 'response_format' => 'json', 'session_token' => $self->{session_token}, 'folder_key' => $self->{path}, 'filename' => $self->{file}->name, 'size' => $self->{file}->size, 'hash' => $self->{file}->hash, my %param = ( my $microseconds = substr(join('', @sec), 0, 13); my @sec = gettimeofday(); my $url = 'https://www.mediafire.com/api/1.5/upload/instant.php'; my ($self) = @_;my $getFileFromCache = sub {}; return $response; $self->{upload_url} = $response->{upload_url}->{resumable}; $self->{file}->key($file_key); my $file_key = $response->{preemptive_quickkey} // $response->{duplicate_quickkey}; p $response; } croak "Can't checkUploadFile. Storage limit exceeded"; if ($response->{storage_limit_exceeded} ne 'no') { # Limit exceeded } croak "checkUploadFile() not success"; if ($response->{result} ne 'Success') { my $response = $json_res->{response}; # Get json response } croak "Can't parse respone '" . $res->decoded_content . "' to json"; if ($@) { }; decode_json($res->decoded_content); my $json_res = eval { } croak "Wrong response code checkUploadFile(). Url: '$full_url'. Code: $code"; if ($code ne '200') { my $code = $res->code; my $res = $self->{ua}->get($full_url); my $full_url = $url . '?' . $param_str; my $param_str = join('&', map {"$_=" . uri_escape($param{$_})} keys %param); ); $microseconds => '', 'response_format' => 'json', 'session_token' => $self->{session_token}, 'folder_key' => $self->{path}, 'preemptive' => 'yes', 'resumable' => 'yes', 'unit_size' => $self->{buff_size}, 'filename' => $self->{file}->name, 'size' => $self->{file}->size, 'hash' => $self->{file}->hash, my %param = ( my $microseconds = substr(join('', @sec), 0, 13); my @sec = gettimeofday(); my $url = 'https://www.mediafire.com/api/1.5/upload/check.php'; my ($self) = @_;my $checkUploadFile = sub {}; return $sha->hexdigest; $sha->addfile($fnammy ($getSha256Sum, $checkUploadFile, $getFileFromCache, $checkResumeUpload, $getMimeType, $uploadF);############################ PRIVATE METHODS ############################################my $DEFAULT_BUFF_SIZE = 1048576;our $VERSION = '0.01';use Data::Printer;use Mediafire::Api::File;use IO::Socket::SSL;use Time::HiRes qw/gettimeofday/;use Crypt::Digest::SHA256 qw/sha256_hex/;use MIME::Detect;use JSON::XS;use HTTP::Request;use File::Basename;use LWP::ConnCache;use LWP::UserAgent;use URI::Escape;use Carp qw/croak carp/;use open qw(:std :utf8);use warnings;use strict;use utf8;use 5.008001;package Mediafire::Api::UploadFile;ad <00> <00><00><00><00><00>nA<00><00><00><00><00><00>}|`5<00> <00> <00> <00> <00> <00> <00> <00> <00> <00> <00> <00> e `
<00>
T
)
<00> <00> <00> <00> d F <00><00><00><00><00><00><00>$<00><00><00><00>z% <00><00><00><00><00>q<00><00><00><00><00>Q?<00><00><00><00><00><00><00><00><00><00><00><00><00><00>1<00><00><00><00><00><00><00>T<00> -name => basename($self->{upload_file}), -size => -s $self->{upload_file}, $self->{file} = Mediafire::Api::File->new( } croak "File '" . $self->{upload_file} . "' not exists"; if (not -f $self->{upload_file}) { $self->{path} = $opt{'-path'} || 'myfiles'; $self->{upload_file} = $opt{'-file'} || croak "You must specify -file param for method uploadFile"; my ($self, %opt) = @_;sub uploadFile {} return $self; bless $self, $class; $self->{buff_size} = $opt{-buff_zize} // $DEFAULT_BUFF_SIZE; $self->{session_token} = $opt{-session_token} // croak "You must specify '-session_token' par}}}}}}}}}}}}}}}}}}}}; return $defaul}; return $de};}; return $default_mime; } return $types[0]->mime_type; if (@types) { my @types = $mime->mime_types_from_name($fname); my $mime = MIME::Detect->new(); my $default_mime = 'application/zip'; my ($fname) = @_;$getMimeType = sub {}; return 1; } croak "Not all parts of file '$upload_file' uploaded. Wrong answer from server"; if ($json_res->{response}->{resumable_upload}->{all_units_ready} ne 'yes') { # Check all units ready close $FH; } ++$unit_id; } last; if ($json_res->{response}->{resumable_upload}->{all_units_ready} eq 'yes') { # Check all units ready } croak "Response on url '$url' not success"; if ($json_res->{response}->{result} ne 'Success') { } croak "Can't decode response to json. Response: '" . $res->decoded_content . "'"; if ($@) { }; decode_json($res->decoded_content); $json_res = eval { } croak "Wrong response code on request to url '$url'. Code: '$code'"; if ($code ne '200') { my $code = $res->code; my $res = $self->{ua}->post($url, @headers); ); "Content" => $filebuf, "X-Unit-Id" => $unit_id, "X-Unit-Size" => $bytes, "X-Unit-Hash" => $unit_hash, "X-Filehash" => $self->{file}->hash, "X-Filetype" => $getMimeType->($self->{file}->name), "X-Filename" => $self->{file}->name, "X-Filesize" => $self->{file}->size, "Origin" => "https://www.mediafire.com", "Referer" => "https://www.mediafire.com/uploads", "Content-Type" => "application/octet-stream", "Accept-Encoding" => "gzip, deflate, br", "Accept-Language" => "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7", "Accept" => "*/*", my @headers = ( my $unit_hash = sha256_hex($filebuf); while (my $bytes = read($FH, $filebuf, $self->{buff_size})) { my $json_res; binmode $FH; open my $FH, "<$upload_file" or croak "Can't open $upload_file $!"; my $filebuf; my $unit_id = 0; my $url = $self->{upload_url} . '?' . $param_str; my $param_str = join('&', map {"$_=" . uri_escape($param{$_})} keys %param); ); 'response_format' => 'json', 'uploadkey' => $self->{path}, 'session_token' => $self->{session_token}, my %param = ( my $upload_file = $self->{upload_file}; my ($self) = @_;$uploadF = sub {# Upload file}; return 1; } croak "Wrong response code on url: '$full_url'. Code: $code";ad<00>
t <00><00><00><00><00>cQ<00><00><00><00><00>Vu ; <00> <00> <00> A  <00> <00> <00> t if ($code ne '2 if ($code ne '200') { my $code = $res->code; my $res = $ua->request($request); my $request = HTTP::Request->new('OPTIONS', $full_url, $headers); my $full_url = $url . '?' . $param_str; my $param_str = join('&', map {"$_=" . uri_escape($param{$_})} keys %param); ]; 'Accept-Language' => 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', 'Accept-Encoding' => 'gzip, deflate, br', 'Accept' => '*/*', 'Access-Control-Request-Headers' => 'content-type,x-filehash,x-filename,x-filesize,x-filetype,x-unit-hash,x-unit-id,x-unit-size', 'Origin' => 'https://www.mediafire.com', 'Access-Control-Request-Method' => 'POST', my $headers = [ ); 'response_format' => 'json', 'uploadkey' => $self->{path}, 'session_token' => $self->{session_token}, my %param = ( my $url = 'https://ul.mediafireuserupload.com/api/1.5/upload/resumable.php'; my $ua = $self->{ua}; my ($self) = @_;$checkResumeUpload = sub {ad
<00>
<00>
<00>
<00>
i
:
4
3

<00> <00> <00> <00> <00> <00> 7  <00><00><00><00><00><00><00>DC%<00><00><00><00>t@<00><00><00><00><00>7 <00><00><00>UO5 <00><00><00><00><00>^ my $response = $json_res->{response}; # Get json response } croak "Can't parse respone '" . $res->decoded_content . "' to json"; if ($@) { }; decode_json($res->decoded_content); my $json_res = eval { } croak "Wrong response code checkUploadFile(). Url: '$full_url'. Code: $code"; if ($code ne '200') { my $code = $res->code; my $res = $self->{ua}->get($full_url); my $full_url = $url . '?' . $param_str; my $param_str = join('&', map {"$_=" . uri_escape($param{$_})} keys %param); ); $microseconds => '', 'response_format' => 'json', 'session_token' => $self->{session_token}, 'folder_key' => $self->{path}, 'filename' => $self->{file}->name, 'size' => $self->{file}->size, 'hash' => $self->{file}->hash, my %param = ( my $microseconds = substr(join('', @sec), 0, 13); my @sec = gettimeofday(); my $url = 'https://www.mediafire.com/api/1.5/upload/instant.php'; my ($self) = @_;$getFileFromCache = sub {}; return $response; $self->{upload_url} = $response->{upload_url}->{resumable}; $self->{file}->key($file_key); my $file_key = $response->{preemptive_quickkey} // $response->{duplicate_quickkey}; p $response; } croak "Can't checkUploadFile. Storage limit exceeded"; if ($response->{storage_limit_exceeded} ne 'no') { # Limit exceeded } croak "checkUploadFile() not success"; if ($response->{result} ne 'Success') { my $response = $json_res->{response}; # Get json response } croak "Can't parse respone '" . $res->decoded_content . "' to json"; if ($@) { }; decode_json($res->decoded_content); my $json_res = eval { } croak "Wrong response code checkUploadFile(). Url: '$full_url'. Code: $code"; if ($code ne '200') { my $code = $res->code; my $res = $self->{ua}->get($full_url); my $full_url = $url . '?' . $param_str; my $param_str = join('&', map {"$_=" . uri_escape($param{$_})} keys %param); ); $microseconds => '', 'response_format' => 'json', 'session_token' => $self->{session_token}, 'folder_key' => $self->{path}, 'preemptive' => 'yes', 'resumable' => 'yes', 'unit_size' => $self->{buff_size}, 'filename' => $self->{file}->name, 'size' => $self->{file}->size, 'hash' => $self->{file}->hash, my %param = ( my $microseconds = substr(join('', @sec), 0, 13); my @sec = gettimeofday(); my $url = 'https://www.mediafire.com/api/1.5/upload/check.php'; my ($self) = @_;$checkUploadFile = sub {}; return $sha->hexdigest; $sha->addfile($fname); my $sha = Crypt::Digest::SHA256->new(); my ($fname) = @_;$getSha256Sum = sub {