I’ve been beta testing micro.blog. There is a new page here for status type posts, these get sent to micro.blog/johnjohnston and to twitter.
This has renewed my interest in finding different ways to post to the blog especially for short posts that would have previously gone straight to twitter.
On iOS there is the nice micro.blog app, editorial or drafts and workflow. On my mac I’ve used AppleScript to post to blogs before, but needed to figure out how to add a category for the micro blog. I also wanted to not have a title, use the format of status and the note kind. The categories and kinds were the tricky bit, they need to be in a strut within a strut in the datas sent to the xml-rpc end point (I am a wee bit wobbly on the vocabulary here).
The following script does the trick. It is fairly limited as I hard code various things into it:
- user name
- password – this is probably not the greatest idea.
- the category micro
- the post format and kind
- an empty title
It should be obvious how to change most of these things and make the script fit other needs or to generalise it.
I also wanted to be able to post from any application, so this script is for Alfred. In a workflow this is triggered by a hotkey which sends the currently selected text to the script. The script passes on the returned info, the post id, to a notification.
So to post a quick stratus method I select some text hit cmd-alt-control-m and that test gets posted here.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on alfred_script(q) | |
set myBlogUsername to "USERNAME" | |
set myBlogPass to "PASSWORD" | |
set cat to {category:{"Micro"}, kind:{"note"}} | |
set poststrut to {post_type:"post", post_status:"publish", post_format:"status", post_title:"", post_content:q, terms_names:cat, comment_status:"open"} | |
tell application "http://example.com/xmlrpc.php" | |
set myPosts to call xmlrpc {method name:"wp.newPost", parameters:{"1", myBlogUsername, myBlogPass, poststrut}} | |
return myPosts | |
end tell | |
end alfred_script |
Of interest to micro.blogista is the comment_status:"open"
bit. I am thinking of all sorts of ways to extend this, perhaps for use in FastScripts to grab the selecting and link from Safari. I’d have probably used FastScripts for this, but I can’t figure out how to get the selection from any text in plain AppleScript, I needed Alfred for that.
Beyond customising the look, my first real dalliance with Alfred has been to re-purpose John Johnston’s workflow for posting to WordPress.
I’ve made a slight modification to his script and added an extra action to open the new post in Safari.
There are still a couple of issues with items getting escaped in certain circumstances but not as many as the AppleScript I was testing. The workflow submits items as drafts so I can tweak before publishing.
Next, I’m going to see if I can combine the workflow with my original script to see if I can get it working via the REST API rather than XML-RPC.