From 061ba2004028d31982dcdce25280e4264b9bcea6 Mon Sep 17 00:00:00 2001 From: Sergey Kiselev Date: Mon, 18 Jun 2018 17:46:49 +0500 Subject: [PATCH] =?UTF-8?q?yamd.pl=20-=20=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=B3=D1=80?= =?UTF-8?q?=D1=83=D0=B7=D0=BA=D0=B0=20=D0=BB=D0=BE=D0=B3=D0=BE=D1=82=D0=B8?= =?UTF-8?q?=D0=BF=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=BE=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0.=20=D0=98=D0=BC=D0=BF=D0=BE=D1=80=D1=82=20=D0=BD?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=BE=D0=BB=D1=8C=D0=BA=D0=B8=D1=85=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=87=D1=82=D0=BE=D0=B2=D1=8B=D1=85=20=D1=8F=D1=89=D0=B8?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=20=D0=BF=D0=BE=D0=BA=D0=B0=20=D0=BE=D1=82?= =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=BE=D0=B2=D0=B0=D0=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yamd.pl | 54 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/yamd.pl b/yamd.pl index a76cee1..c4c911d 100755 --- a/yamd.pl +++ b/yamd.pl @@ -49,17 +49,51 @@ my $request_content_type = ""; my $ua = new LWP::UserAgent; my $request = new HTTP::Request($request_type => $request_url); -$request->header( - 'PddToken' => $task->{yamd}->{token}, - 'Content-type' => $request_content_type -); - -my $request_content = "domain=" . $task->{yamd}->{domain}; -foreach my $k (keys %{$task->{yamd}->{options}}) { - $request_content .= "&" . $k . "=" . $task->{yamd}->{options}->{$k}; -} +if ( $task->{yamd}->{service} eq "domain" && + $task->{yamd}->{sub_service} eq "logo" && + $task->{yamd}->{query} eq "set" ) { + my $boundary = 'X'; + my @rand = ('a'..'z', 'A'..'Z'); + for (0..14) { $boundary .= $rand[rand(@rand)]; } + + $request->header( + 'PddToken' => $task->{yamd}->{token}, + 'Content-type' => $request_content_type . "; boundary=" . $boundary + ); + + my $field = new HTTP::Message([ + 'Content-Disposition' => 'form-data; name="domain"', + 'Content-Type' => 'text/plain; charset=utf-8' + ]); + $field->add_content_utf8($task->{yamd}->{domain}); + $request->add_part($field); + + open(my $fh, '<', $task->{yamd}->{options}->{file}); + my $size = (stat $task->{yamd}->{options}->{file})[7]; + my $file_content = new HTTP::Message([ + 'Content-Disposition' => 'form-data; name="file"; filename="logo"', + 'Content-Type' => 'application/octet-stream' + ]); + $file_content->add_content($_) while <$fh>; + $request->add_part($file_content); + + close $fh; +} elsif ( $task->{yamd}->{service} eq "import" && + $task->{yamd}->{query} eq "start_import_file" ) { + die "Not implemented!\n\n"; +} else { + $request->header( + 'PddToken' => $task->{yamd}->{token}, + 'Content-type' => $request_content_type + ); + + my $request_content = "domain=" . $task->{yamd}->{domain}; + foreach my $k (keys %{$task->{yamd}->{options}}) { + $request_content .= "&" . $k . "=" . $task->{yamd}->{options}->{$k}; + } -$request->content($request_content); + $request->content($request_content); +} my $response = $ua->request($request);