From 702a671539587fc1ad89258e8c3eb5cf006428b4 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Mon, 12 Sep 2016 15:14:07 +0200 Subject: [PATCH] improve "x" option, add syndication option --- src/shpub/Command/Note.php | 29 ++++++++++++++++++++++++++--- src/shpub/Request.php | 15 +++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/shpub/Command/Note.php b/src/shpub/Command/Note.php index 6fb7cec..cc3a5c1 100644 --- a/src/shpub/Command/Note.php +++ b/src/shpub/Command/Note.php @@ -48,6 +48,17 @@ class Command_Note 'default' => null, ) ); + $cmd->addOption( + 'syndication', + array( + 'short_name' => '-s', + 'long_name' => '--syndication', + 'description' => 'Syndication URL(s)', + 'help_name' => 'URL', + 'action' => 'StoreArray', + 'default' => [], + ) + ); $cmd->addOption( 'x', array( @@ -80,10 +91,15 @@ class Command_Note ); } if (count($command->options['categories'])) { - $req->req->addPostParameter( + $req->addPostParameter( 'category', $command->options['categories'] ); } + if (count($command->options['syndication'])) { + $req->addPostParameter( + 'syndication', $command->options['syndication'] + ); + } $files = $command->options['files']; $fileList = $urlList = [ @@ -127,7 +143,7 @@ class Command_Note $n = 0; foreach ($urls as $url) { $req->req->addPostParameter( - $type . '[' . $n++ . ']', reset($urls) + $type . '[' . $n++ . ']', $url ); } } @@ -144,9 +160,16 @@ class Command_Note } if (count($command->options['x'])) { + $postParams = []; foreach ($command->options['x'] as $xproperty) { list($propkey, $propval) = explode('=', $xproperty, 2); - $req->req->addPostParameter($propkey, $propval); + if (!isset($postParams[$propkey] )) { + $postParams[$propkey] = []; + } + $postParams[$propkey][] = $propval; + } + foreach ($postParams as $propkey => $propvals) { + $req->addPostParameter($propkey, $propvals); } } diff --git a/src/shpub/Request.php b/src/shpub/Request.php index edca12a..0924dda 100644 --- a/src/shpub/Request.php +++ b/src/shpub/Request.php @@ -53,6 +53,21 @@ class Request return $this->req->addUpload($fieldName, $filename); } + /** + * Add one or multiple POST parameters. + * Automatically adds them as array or as string. + * + * @param string $key Parameter name + * @param string|array $values One or multiple values + */ + public function addPostParameter($key, $values) + { + if (count($values) == 1) { + $values = reset($values); + } + $this->req->addPostParameter($key, $values); + } + protected function printCurl() { $command = 'curl'; -- 2.30.2