shpub - micropub client for your shell
Command line micropub client written in PHP.
shpub is released as self-contained .phar file that includes all dependencies.
Download the latest release:
- shpub-0.3.0.phar, 522 kiB
See shpub downloads page for all released versions.
$ ./bin/shpub.php connect http://mywebsite
$ ./bin/shpub.php connect http://mywebsite http://mywebsite/user
If you pass a third parameter, then it will be the name of the connection. You can select a specific server/connection with -s on all commands.
$ ./bin/shpub.php server rr test anoweco.bogo local2
Also try server -v which lists server and user URLs.
shpub has support for the following post types:
shpub sends data form-encoded by default. To send JSON requests, use the --json option.
$ ./bin/shpub.php like http://example.org/ Like created at server http://anoweco.bogo/comment/23.htm
$ ./bin/shpub.php reply http://example.org/ "Hey, cool!" Reply created at server http://anoweco.bogo/comment/42.htm
A normal note:
$ ./bin/shpub.php note "oh this is cool!" Note created at server http://known.bogo/2016/oh-this-is-cool.htm
Note with an image:
$ ./bin/shpub.php note -f image.jpg "this is so cute" Note created at server http://known.bogo/2016/this-is-so-cute
You can use -f several times to upload multiple files.
URL image upload:
$ ./bin/shpub.php note -f http://example.org/1.jpg "img url!" Note created at server http://known.bogo/2016/img-url
You may delete and restore posts on micropub servers:
$ ./bin/shpub.php delete http://known.bogo/2016/like
Restore a deleted post:
$ ./bin/shpub.php undelete http://known.bogo/2016/like
Existing posts can be modified if the server supports this:
$ ./bin/shpub update --add category=foo category=bar\ --replace slug=differentslug\ --delete category=oldcat\ http://known.bogo/2016/post
Most post types allow file uploads. Simply use -f:
$ ./bin/shpub.php note -f path/to/image.jpg "image test" Note created at server http://known.bogo/2016/image-test
The media endpoint is used automatically if the micropub endpoint has one. To force shpub to directly upload the file and skip the media endpoint, use the --direct-upload option:
$ ./bin/shpub.php note --direct-upload -f path/to/image.jpg "direct upload"
Use the upload command to upload files to the media endpoint without creating a post:
$ ./bin/shpub.php upload /path/to/file.jpg /path/to/file2.jpg Uploaded file /path/to/file.jpg http://test.bogo/micropub-media-endpoint/1474362040.2941/file.jpg Uploaded file /path/to/file2.jpg http://test.bogo/micropub-media-endpoint/1474362040.3383/file2.jpg
To debug shpub or your micropub endpoint, use the --debug option to see curl command equivalents to the shpub HTTP requests:
$ ./bin/shpub.php -s known -d note "a simple note" curl -X POST -H 'User-Agent: shpub' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Authorization: Bearer abc' -d 'h=entry' -d 'content=a simple note' 'http://known.bogo/micropub/endpoint' Post created at server http://known.bogo/2016/a-simple-note