class Command_Like
{
/**
- * @var Config_Host
+ * @var Config
*/
- protected $host;
+ protected $cfg;
- public function __construct($host)
+ public function __construct($cfg)
{
- $this->host = $host;
+ $this->cfg = $cfg;
}
- public function run($url)
+ public static function opts(\Console_CommandLine $optParser)
{
- $url = Validator::url($url, 'url');
+ $cmd = $optParser->addCommand('like');
+ $cmd->addArgument(
+ 'url',
+ [
+ 'optional' => false,
+ 'description' => 'URL that is liked',
+ ]
+ );
+ }
+
+ public function run($command)
+ {
+ $url = Validator::url($command->args['url'], 'url');
if ($url === false) {
exit(10);
}
]
);
- $req = new \HTTP_Request2($this->host->endpoints->micropub, 'POST');
- $req->setHeader('Content-type', 'application/x-www-form-urlencoded');
- $req->setHeader('Authorization', 'Bearer ' . $this->host->token);
- $req->setBody($body);
- $res = $req->send();
- if (intval($res->getStatus() / 100) != 2) {
- Log::err(
- 'Server returned an error status code ' . $res->getStatus()
- );
+ $req = new Request($this->cfg->host, $this->cfg);
+ $res = $req->send($body);
+ $postUrl = $res->getHeader('Location');
+ if ($postUrl === null) {
+ Log::err('Error: Server sent no "Location" header and said:');
Log::err($res->getBody());
- exit(11);
+ exit(20);
+ } else {
+ echo "Like created at server\n";
+ echo $postUrl . "\n";
}
- $postUrl = $res->getHeader('Location');
- echo "Like created at server\n";
- echo $postUrl . "\n";
}
}
?>