From: Christian Weiske Date: Thu, 15 Sep 2016 15:03:31 +0000 (+0200) Subject: Add bookmark command X-Git-Tag: v0.1.0~3 X-Git-Url: https://git.cweiske.de/shpub.git/commitdiff_plain/c6fd5d2f91a31c5014c2d40276b8d4ef771fb9a9 Add bookmark command --- diff --git a/src/shpub/Cli.php b/src/shpub/Cli.php index 77b62cc..697d934 100644 --- a/src/shpub/Cli.php +++ b/src/shpub/Cli.php @@ -166,6 +166,7 @@ class Cli Command_Like::opts($optParser); Command_Repost::opts($optParser); Command_Rsvp::opts($optParser); + Command_Bookmark::opts($optParser); Command_Delete::opts($optParser); Command_Undelete::opts($optParser); diff --git a/src/shpub/Command/Bookmark.php b/src/shpub/Command/Bookmark.php new file mode 100644 index 0000000..e25365c --- /dev/null +++ b/src/shpub/Command/Bookmark.php @@ -0,0 +1,57 @@ +addCommand('bookmark'); + static::optsGeneric($cmd); + $cmd->addArgument( + 'url', + [ + 'optional' => false, + 'description' => 'URL to bookmark', + ] + ); + $cmd->addArgument( + 'text', + [ + 'optional' => true, + 'multiple' => false, + 'description' => 'Bookmark text', + ] + ); + } + + public function run(\Console_CommandLine_Result $cmdRes) + { + $url = Validator::url($cmdRes->args['url'], 'url'); + if ($url === false) { + exit(10); + } + + $req = new Request($this->cfg->host, $this->cfg); + $req->req->addPostParameter('h', 'entry'); + $req->req->addPostParameter('bookmark-of', $url); + + if ($cmdRes->args['text']) { + $req->req->addPostParameter('content', $cmdRes->args['text']); + } + + + $this->handleGenericOptions($cmdRes, $req); + $res = $req->send(); + + $postUrl = $res->getHeader('Location'); + if ($postUrl === null) { + Log::err('Error: Server sent no "Location" header and said:'); + Log::err($res->getBody()); + exit(20); + } else { + Log::info('Bookmark created at server'); + Log::msg($postUrl); + } + } +} +?>