Ruby wrapper and command line tool for the Tumblr API. In case there weren't enough of those already. This one is powered by the Weary gem.
gem install tumblr-rb
$: tumblr path/to/a_post.markdown
Email Address: tumblr-user@foobarmail.com
Password:
Published to Tumblr. The ID for this post is: 123456789
You can pass tumblr
something from standard input, but you have to set your email and password as arguments:
$: echo 'Hello world.' | tumblr -a user@tumblr.com:supers3cretp4ssw0rd
Published to Tumblr. The ID for this post is: 123456790
Or the credentials can come from a YAML file:
$ cat ~/.tumblrlogin
email: tumblruser@generic-email.com
password: myvoiceismypassport
$ echo 'Hello world. | tumblr --credentials ~/.tumblrlogin
Try tumblr --help
if you are in need of guidance. Read tumblr(1) for more information.
Like Jekyll, and Mustache, Tumblr gem will transform documents preceded by a YAML frontmatter block.
YAML frontmatter beings with ---
on a single line, followed by YAML, ending with another ---
on a single line, e.g.
---
type: quote
source: Billy Shakespeare
state: draft
tags: hamlet, shakespeare
---
"To be or not to be."
Understood YAML parameters are taken from the Tumblr API: http://www.tumblr.com/docs/en/api#api_write
Read tumblr(5) for more info.
type regular, photo, link, quote, conversation, video, audio
will take a guess if ommitted.
state published, queue, draft, submission
format html or markdown
tags comma-separated list of tags
date post date
private true if the post is private
slug A custom string to appear in the post's URL
group id for a secondary blog
generator description of the publishing application
send-to-twitter Twitter status update if the tumblelog has enabled it
publish-on if the post state is 'queue', publish on this date
regular title
photo caption, click-through-url
quote source
link name, description
conversation title
video title, caption
audio caption
To publish to Tumblr, do this:
request = Tumblr.new(username, password).post(document)
request.perform do |response|
if response.success?
puts response.body # Returns the new post's id.
else
puts "Something went wrong: #{response.code} #{response.message}"
end
end
- Full API coverage. Leave no method behind.
- Well tested. Like a good Rubyist.
- Obnoxiously simple CLI. *nix idioms are wonderful.
- Kind-of-sort-of proof-of-concept for Weary.
- File-uploading for Photos, Videos, Audio (needs to get into Weary)
The Tumblr gem is Copyright (c) 2010 Mark Wunsch and is licensed under the MIT License.
Tumblr is Copyright (c) Tumblr, Inc. The Tumblr gem is NOT affiliated with Tumblr, Inc.