1 **************************************
2 shpub - micropub client for your shell
3 **************************************
4 Command line `micropub <https://micropub.net/>`_ client written in PHP.
12 shpub is released as self-contained ``.phar`` file that includes
17 See `shpub downloads page <http://cweiske.de/shpub-download.htm>`_
18 for all released versions.
23 When using the git version, you need to have the following dependencies
24 installed on your system:
27 - PEAR's `Console_CommandLine <http://pear.php.net/package/Console_CommandLine>`_
28 - PEAR's `HTTP_Request2 <http://pear.php.net/package/HTTP_Request2>`_
29 - PEAR's `MIME_Type <http://pear.php.net/package/MIME_Type>`_
30 - PEAR's `NET_URL2 <http://pear.php.net/package/Net_URL2>`_
38 $ ./bin/shpub.php connect http://mywebsite
42 $ ./bin/shpub.php connect http://mywebsite http://mywebsite/user
44 If you pass a third parameter, then it will be the name of the connection.
45 You can select a specific server/connection with ``-s`` on all commands.
48 List configured servers/connections
49 ===================================
52 $ ./bin/shpub.php server
58 Also try ``server -v`` which lists server and user URLs.
64 shpub has support for the following post types:
66 - `article <http://indieweb.org/article>`_
67 - `bookmark <http://indieweb.org/bookmark>`_
68 - `like <http://indieweb.org/like>`_
69 - `note <http://indieweb.org/note>`_
70 - `reply <http://indieweb.org/reply>`_
71 - `repost <http://indieweb.org/repost>`_
72 - `rsvp <http://indieweb.org/rsvp>`_
74 ``shpub`` sends data form-encoded by default.
75 To send JSON requests, use the ``--json`` option.
82 $ ./bin/shpub.php like http://example.org/
83 Like created at server
84 http://anoweco.bogo/comment/23.htm
90 $ ./bin/shpub.php reply http://example.org/ "Hey, cool!"
91 Reply created at server
92 http://anoweco.bogo/comment/42.htm
99 $ ./bin/shpub.php note "oh this is cool!"
100 Note created at server
101 http://known.bogo/2016/oh-this-is-cool.htm
105 $ ./bin/shpub.php note -f image.jpg "this is so cute"
106 Note created at server
107 http://known.bogo/2016/this-is-so-cute
109 You can use ``-f`` several times to upload multiple files.
113 $ ./bin/shpub.php note -f http://example.org/1.jpg "img url!"
114 Note created at server
115 http://known.bogo/2016/img-url
117 Load note content from a file::
119 $ ./bin/shpub.php note - < /path/to/file.txt
120 Note created at server
121 http://known.bogo/2017/some-note
126 You may create custom post types with the ``x`` command.
127 This is useful if your micropub endpoint supports additional types,
128 like known's ``annotation`` type (comments and likes for posts).
130 Create a comment to a known post::
132 $ ./bin/shpub.php x annotation\
133 -x url=http://known.bogo/2016/example-domain-1\
136 -x userurl=http://example.org/~barryf\
137 -x userphoto=http://example.org/~barryf/avatar.jpg\
138 -x content="There is a typo in paragraph 1. 'Fou' should be 'Foo'"
144 You may delete and restore posts on micropub servers::
146 $ ./bin/shpub.php delete http://known.bogo/2016/like
148 Restore a deleted post::
150 $ ./bin/shpub.php undelete http://known.bogo/2016/like
156 Existing posts can be modified if the `server supports this`__::
158 $ ./bin/shpub update --add category=foo category=bar\
159 --replace slug=differentslug\
160 --delete category=oldcat\
161 http://known.bogo/2016/post
163 __ https://indieweb.org/Micropub/Servers#Implementation_status
169 You may list the syndication targets defined on the server::
171 $ ./bin/shpub.php targets
173 https://news.indieweb.org/en
175 Then specify it when creating a post::
177 $ ./bin/shpub.php article -x mp-syndicate-to=https://news.indieweb.org/en title text
182 Most post types allow file uploads. Simply use ``-f``::
184 $ ./bin/shpub.php note -f path/to/image.jpg "image test"
185 Note created at server
186 http://known.bogo/2016/image-test
188 The media endpoint is used automatically if the micropub endpoint has one.
189 To force shpub to directly upload the file and skip the media endpoint,
190 use the ``--direct-upload`` option::
192 $ ./bin/shpub.php note --direct-upload -f path/to/image.jpg "direct upload"
194 Use the ``upload`` command to upload files to the media endpoint without
197 $ ./bin/shpub.php upload /path/to/file.jpg /path/to/file2.jpg
198 Uploaded file /path/to/file.jpg
199 http://test.bogo/micropub-media-endpoint/1474362040.2941/file.jpg
200 Uploaded file /path/to/file2.jpg
201 http://test.bogo/micropub-media-endpoint/1474362040.3383/file2.jpg
207 To debug ``shpub`` or your micropub endpoint, use the ``--debug`` option
208 to see ``curl`` command equivalents to the shpub HTTP requests::
210 $ ./bin/shpub.php -s known -d note "a simple note"
211 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'
212 Post created at server
213 http://known.bogo/2016/a-simple-note
219 shpub's homepage is http://cweiske.de/shpub.htm
224 shpub's source code is available from http://git.cweiske.de/shpub.git
225 or the `mirror on github`__.
227 __ https://github.com/cweiske/shpub
232 shpub is licensed under the `AGPL v3 or later`__.
234 __ http://www.gnu.org/licenses/agpl.html
239 shpub was written by `Christian Weiske`__.
241 __ http://cweiske.de/