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);