tumblr-rb 1.3.0 → 2.0.0.alpha
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +7 -0
- data/Gemfile +15 -8
- data/Gemfile.lock +65 -65
- data/LICENSE +4 -2
- data/README.md +31 -84
- data/Rakefile +8 -68
- data/bin/tumblr +3 -133
- data/lib/tumblr.rb +7 -184
- data/lib/tumblr/authentication.rb +71 -0
- data/lib/tumblr/client.rb +148 -0
- data/lib/tumblr/command_line_interface.rb +222 -0
- data/lib/tumblr/credentials.rb +31 -0
- data/lib/tumblr/post.rb +253 -171
- data/lib/tumblr/post/answer.rb +17 -0
- data/lib/tumblr/post/audio.rb +22 -10
- data/lib/tumblr/post/chat.rb +25 -0
- data/lib/tumblr/post/link.rb +22 -9
- data/lib/tumblr/post/photo.rb +29 -10
- data/lib/tumblr/post/quote.rb +17 -10
- data/lib/tumblr/post/text.rb +18 -0
- data/lib/tumblr/post/video.rb +26 -11
- data/lib/tumblr/version.rb +3 -0
- data/lib/tumblr/views/error.erb +6 -0
- data/lib/tumblr/views/form.erb +11 -0
- data/lib/tumblr/views/layout.erb +41 -0
- data/lib/tumblr/views/success.erb +6 -0
- data/man/tumblr.1 +67 -65
- data/man/tumblr.1.html +131 -108
- data/man/tumblr.1.ronn +76 -57
- data/man/tumblr.5 +48 -68
- data/man/tumblr.5.html +106 -114
- data/man/tumblr.5.ronn +38 -51
- data/spec/fixtures/posts.json +10 -0
- data/spec/fixtures/typical_animated_gif.gif +0 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/tumblr/authentication_spec.rb +57 -0
- data/spec/tumblr/client_spec.rb +223 -0
- data/spec/tumblr/credentials_spec.rb +63 -0
- data/spec/tumblr/post_spec.rb +125 -0
- data/tumblr-rb.gemspec +16 -89
- metadata +101 -102
- data/lib/tumblr/authenticator.rb +0 -18
- data/lib/tumblr/post/conversation.rb +0 -15
- data/lib/tumblr/post/regular.rb +0 -14
- data/lib/tumblr/reader.rb +0 -191
- data/lib/tumblr/writer.rb +0 -39
- data/test/fixtures/vcr_cassettes/authenticate/authenticate.yml +0 -39
- data/test/fixtures/vcr_cassettes/read/all_pages.yml +0 -34
- data/test/fixtures/vcr_cassettes/read/authenticated.yml +0 -40
- data/test/fixtures/vcr_cassettes/read/authentication_failure.yml +0 -33
- data/test/fixtures/vcr_cassettes/read/like.yml +0 -31
- data/test/fixtures/vcr_cassettes/read/mwunsch.yml +0 -101
- data/test/fixtures/vcr_cassettes/read/optional.yml +0 -48
- data/test/fixtures/vcr_cassettes/read/pages.yml +0 -36
- data/test/fixtures/vcr_cassettes/read/tumblrgemtest.yml +0 -42
- data/test/fixtures/vcr_cassettes/read/unlike.yml +0 -31
- data/test/fixtures/vcr_cassettes/write/delete.yml +0 -31
- data/test/fixtures/vcr_cassettes/write/edit.yml +0 -31
- data/test/fixtures/vcr_cassettes/write/reblog.yml +0 -31
- data/test/fixtures/vcr_cassettes/write/write.yml +0 -31
- data/test/helper.rb +0 -44
- data/test/test_tumblr.rb +0 -710
data/man/tumblr.1.html
CHANGED
@@ -2,164 +2,187 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta http-equiv='content-type' value='text/html;charset=utf8'>
|
5
|
-
<meta name='generator' value='Ronn/v0.
|
6
|
-
<title>tumblr(1)
|
7
|
-
<style type='text/css'>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
float:left; width:33%; list-style-type:none;
|
44
|
-
text-transform:uppercase; font-size:18px; color:#999;
|
45
|
-
letter-spacing:1px;}
|
46
|
-
#man ol.man { width:100%; }
|
47
|
-
#man ol.man li.tl { text-align:left }
|
48
|
-
#man ol.man li.tc { text-align:center;letter-spacing:4px }
|
49
|
-
#man ol.man li.tr { text-align:right }
|
50
|
-
#man ol.man a { color:#999 }
|
51
|
-
#man ol.man a:hover { color:#333231 }
|
5
|
+
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
|
6
|
+
<title>tumblr(1) - publish to tumblr.com</title>
|
7
|
+
<style type='text/css' media='all'>
|
8
|
+
/* style: man */
|
9
|
+
body#manpage {margin:0}
|
10
|
+
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
|
11
|
+
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
|
12
|
+
.mp h2 {margin:10px 0 0 0}
|
13
|
+
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
|
14
|
+
.mp h3 {margin:0 0 0 4ex}
|
15
|
+
.mp dt {margin:0;clear:left}
|
16
|
+
.mp dt.flush {float:left;width:8ex}
|
17
|
+
.mp dd {margin:0 0 0 9ex}
|
18
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
|
19
|
+
.mp pre {margin-bottom:20px}
|
20
|
+
.mp pre+h2,.mp pre+h3 {margin-top:22px}
|
21
|
+
.mp h2+pre,.mp h3+pre {margin-top:5px}
|
22
|
+
.mp img {display:block;margin:auto}
|
23
|
+
.mp h1.man-title {display:none}
|
24
|
+
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
|
25
|
+
.mp h2 {font-size:16px;line-height:1.25}
|
26
|
+
.mp h1 {font-size:20px;line-height:2}
|
27
|
+
.mp {text-align:justify;background:#fff}
|
28
|
+
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
|
29
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
|
30
|
+
.mp u {text-decoration:underline}
|
31
|
+
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
|
32
|
+
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
|
33
|
+
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
|
34
|
+
.mp b.man-ref {font-weight:normal;color:#434241}
|
35
|
+
.mp pre {padding:0 4ex}
|
36
|
+
.mp pre code {font-weight:normal;color:#434241}
|
37
|
+
.mp h2+pre,h3+pre {padding-left:0}
|
38
|
+
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
|
39
|
+
ol.man-decor {width:100%}
|
40
|
+
ol.man-decor li.tl {text-align:left}
|
41
|
+
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
|
42
|
+
ol.man-decor li.tr {text-align:right;float:right}
|
52
43
|
</style>
|
53
44
|
</head>
|
54
|
-
|
55
|
-
|
45
|
+
<!--
|
46
|
+
The following styles are deprecated and will be removed at some point:
|
47
|
+
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
|
56
48
|
|
57
|
-
|
49
|
+
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
|
50
|
+
.man-navigation should be used instead.
|
51
|
+
-->
|
52
|
+
<body id='manpage'>
|
53
|
+
<div class='mp' id='man'>
|
58
54
|
|
59
|
-
<
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
</
|
55
|
+
<div class='man-navigation' style='display:none'>
|
56
|
+
<a href="#NAME">NAME</a>
|
57
|
+
<a href="#SYNOPSIS">SYNOPSIS</a>
|
58
|
+
<a href="#DESCRIPTION">DESCRIPTION</a>
|
59
|
+
<a href="#COMMANDS">COMMANDS</a>
|
60
|
+
<a href="#POSTING-OPTIONS">POSTING OPTIONS</a>
|
61
|
+
<a href="#COMMON-OPTIONS">COMMON OPTIONS</a>
|
62
|
+
<a href="#AUTHORIZATION">AUTHORIZATION</a>
|
63
|
+
<a href="#EXAMPLES">EXAMPLES</a>
|
64
|
+
<a href="#COPYRIGHT">COPYRIGHT</a>
|
65
|
+
<a href="#SEE-ALSO">SEE ALSO</a>
|
66
|
+
</div>
|
64
67
|
|
65
|
-
<
|
66
|
-
<
|
68
|
+
<ol class='man-decor man-head man head'>
|
69
|
+
<li class='tl'>tumblr(1)</li>
|
70
|
+
<li class='tc'>Tumblr Manual</li>
|
71
|
+
<li class='tr'>tumblr(1)</li>
|
72
|
+
</ol>
|
67
73
|
|
68
|
-
<h2>
|
74
|
+
<h2 id="NAME">NAME</h2>
|
75
|
+
<p class="man-name">
|
76
|
+
<code>tumblr</code> - <span class="man-whatis">publish to tumblr.com</span>
|
77
|
+
</p>
|
69
78
|
|
70
|
-
<
|
79
|
+
<h2 id="SYNOPSIS">SYNOPSIS</h2>
|
71
80
|
|
72
|
-
<
|
81
|
+
<p><code>tumblr</code> COMMAND [ARGS]</p>
|
73
82
|
|
74
|
-
<
|
83
|
+
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
75
84
|
|
76
|
-
<p
|
85
|
+
<p><code>tumblr</code> is a command line utility and Ruby library for working with Tumblr.com. It can read plain-text and binary files and publish them to Tumblr.</p>
|
77
86
|
|
78
|
-
<p>
|
87
|
+
<p><code>tumblr</code> is driven through a group of <a href="#COMMANDS" title="COMMANDS" data-bare-link="true">COMMANDS</a> (similar to <code>git</code> or <code>rbenv</code>).</p>
|
79
88
|
|
80
|
-
<
|
89
|
+
<p>If you preface your plaintext file with a bit of YAML (<yaml.org>) frontmatter, you can give <code>tumblr</code> more explicit instructions for how to publish your post. See <a class="man-ref" href="tumblr.5.html">tumblr<span class="s">(5)</span></a> for available YAML parameters.</p>
|
90
|
+
|
91
|
+
<h2 id="COMMANDS">COMMANDS</h2>
|
81
92
|
|
82
93
|
<dl>
|
83
|
-
<dt><code
|
84
|
-
|
85
|
-
|
86
|
-
<
|
87
|
-
|
88
|
-
<dt><code
|
89
|
-
|
90
|
-
<dt><code
|
91
|
-
<dt><code
|
92
|
-
<dt><code
|
94
|
+
<dt><code>tumblr post</code> <var>POST</var> | <var>FILE</var> | <var>URL</var></dt><dd><p> Post to tumblr.
|
95
|
+
A <var>POST</var> is a piece of plaintext, assumed to be formatted as <code>tumblr(5)</code>.
|
96
|
+
<var>FILE</var> is a path to a <var>POST</var>. If <var>FILE</var> has a binary extension, that file will be uploaded as an image, audio, or video post.
|
97
|
+
<var>URL</var> will create a link-type post, or a video or audio post, depending on the location of the url.</p></dd>
|
98
|
+
<dt><code>tumblr pipe</code></dt><dd><p> Read from STDIN and post to tumblr.</p></dd>
|
99
|
+
<dt><code>tumblr edit</code> <var>POST_ID</var></dt><dd><p> Edit <var>POST_ID</var> on tumblr.
|
100
|
+
Will open the serialized post in the foreground with $TUMBLREDITOR then $EDITOR.</p></dd>
|
101
|
+
<dt><code>tumblr fetch</code> <var>POST_ID</var></dt><dd><p> Fetch <var>POST_ID</var> from tumblr and write out its serialized form.</p></dd>
|
102
|
+
<dt><code>tumblr delete</code> <var>POST_ID</var></dt><dd><p> Delete <var>POST_ID</var> from tumblr.</p></dd>
|
103
|
+
<dt><code>tumblr help</code> [<var>TASK</var>]</dt><dd><p> Print the help message and the description for <var>TASK</var>.</p></dd>
|
104
|
+
<dt><code>tumblr authorize</code></dt><dd><p> Start a web server and application to authenticate to tumblr and authorize the cli.
|
105
|
+
See <a href="#AUTHORIZATION" title="AUTHORIZATION" data-bare-link="true">AUTHORIZATION</a></p></dd>
|
106
|
+
<dt><code>tumblr version</code></dt><dd><p> Print the <code>tumblr</code> version and quit.</p></dd>
|
93
107
|
</dl>
|
94
108
|
|
95
109
|
|
96
|
-
<
|
110
|
+
<h2 id="POSTING-OPTIONS">POSTING OPTIONS</h2>
|
111
|
+
|
112
|
+
<p>These options are used when posting to tumblr, i.e. when using <code>tumblr post</code> or <code>tumblr pipe</code>.</p>
|
97
113
|
|
98
114
|
<dl>
|
99
|
-
<dt><code>-
|
100
|
-
<dt><code>-
|
115
|
+
<dt><code>-p</code>,<code>--publish</code></dt><dd><p> Publish this post (ignoring the <code>state</code> parameter set in the post).</p></dd>
|
116
|
+
<dt><code>-q</code>,<code>--queue</code></dt><dd><p> Add this post to the queue.</p></dd>
|
117
|
+
<dt><code>-d</code>,<code>--draft</code></dt><dd><p> Save this post as a draft.</p></dd>
|
101
118
|
</dl>
|
102
119
|
|
103
120
|
|
104
|
-
<h2>
|
121
|
+
<h2 id="COMMON-OPTIONS">COMMON OPTIONS</h2>
|
122
|
+
|
123
|
+
<dl>
|
124
|
+
<dt><code>--credentials</code>=<em>PATH</em></dt><dd><p> The file where your OAuth keys are stored.
|
125
|
+
When authenticating, this path is where the keys should be stored.</p></dd>
|
126
|
+
<dt><code>--host</code>=<em>HOST</em></dt><dd><p> The hostname of the Tumblr account your posting to.
|
127
|
+
Posting and fetching posts require the hostname.</p></dd>
|
128
|
+
</dl>
|
129
|
+
|
130
|
+
|
131
|
+
<h2 id="AUTHORIZATION">AUTHORIZATION</h2>
|
132
|
+
|
133
|
+
<p>Most actions of the cli require authorization to Tumblr. <code>tumblr authorize</code> provides a mechanism to authenticate and authorize the cli.</p>
|
134
|
+
|
135
|
+
<p>In order to use <code>tumblr</code>, you first need to <a href="http://www.tumblr.com/oauth/apps">register</a> an OAuth application with tumblr.</p>
|
136
|
+
|
137
|
+
<p>Run <code>tumblr authorize</code> to start up server, and type in the consumer key and secret. You'll then be asked to authorize the app.
|
138
|
+
These keys are saved to the file noted in <code>--credentials</code>, defaulting to <code>~/.tumblr</code>.
|
139
|
+
If you choose not to use this default, you will need to enter the <code>--credentials</code> option every time you post.
|
140
|
+
Alternatively, use the <code>$TUMBLRCRED</code> environment variable.</p>
|
141
|
+
|
142
|
+
<h2 id="EXAMPLES">EXAMPLES</h2>
|
105
143
|
|
106
144
|
<p>Publish a file to Tumblr.com:</p>
|
107
145
|
|
108
|
-
<pre><code>$ tumblr my_post.txt
|
146
|
+
<pre><code>$ tumblr post my_post.txt
|
109
147
|
</code></pre>
|
110
148
|
|
111
149
|
<p>Or from standard input:</p>
|
112
150
|
|
113
|
-
<pre><code>$ cat data.yml my_post.txt | tumblr
|
151
|
+
<pre><code>$ cat data.yml my_post.txt | tumblr --host=mwunsch.tumblr.com
|
114
152
|
</code></pre>
|
115
153
|
|
116
154
|
<p>Make a Link post:</p>
|
117
155
|
|
118
|
-
<pre><code>$ tumblr http://github.com/mwunsch/tumblr
|
156
|
+
<pre><code>$ tumblr post http://github.com/mwunsch/tumblr
|
119
157
|
</code></pre>
|
120
158
|
|
121
159
|
<p>Or a Video post:</p>
|
122
160
|
|
123
|
-
<pre><code>$ tumblr http://www.youtube.com/watch?v=CW0DUg63lqU
|
161
|
+
<pre><code>$ tumblr post http://www.youtube.com/watch?v=CW0DUg63lqU
|
124
162
|
</code></pre>
|
125
163
|
|
126
164
|
<p>Save it as a draft:</p>
|
127
165
|
|
128
|
-
<pre><code>$ tumblr -d http://www.youtube.com/watch?v=CW0DUg63lqU
|
129
|
-
</code></pre>
|
130
|
-
|
131
|
-
<p>Authenticate with credentials given from a file:</p>
|
132
|
-
|
133
|
-
<pre><code>$ cat ~/.tumblrlogin
|
134
|
-
email: tumblruser@generic-email.com
|
135
|
-
password: myvoiceismypassport
|
136
|
-
$ cat data.yml my_post.txt | tumblr --credentials ~/.tumblrlogin
|
137
|
-
</code></pre>
|
138
|
-
|
139
|
-
<h2>INSTALLATION</h2>
|
140
|
-
|
141
|
-
<p>If you have RubyGems installed:</p>
|
142
|
-
|
143
|
-
<pre><code>gem install tumblr-rb
|
166
|
+
<pre><code>$ tumblr post -d http://www.youtube.com/watch?v=CW0DUg63lqU
|
144
167
|
</code></pre>
|
145
168
|
|
146
|
-
<h2>COPYRIGHT</h2>
|
169
|
+
<h2 id="COPYRIGHT">COPYRIGHT</h2>
|
147
170
|
|
148
|
-
<p>Tumblr (the gem) is Copyright (C) 2010 Mark Wunsch</p>
|
171
|
+
<p>Tumblr (the gem) is Copyright (C) 2010 - 2012 Mark Wunsch</p>
|
149
172
|
|
150
173
|
<p>Tumblr is Copyright (c) Tumblr, Inc. The Tumblr gem is NOT affiliated with Tumblr, Inc.</p>
|
151
174
|
|
152
|
-
<h2>SEE ALSO</h2>
|
175
|
+
<h2 id="SEE-ALSO">SEE ALSO</h2>
|
153
176
|
|
154
|
-
<p>tumblr(5)
|
177
|
+
<p><a class="man-ref" href="tumblr.5.html">tumblr<span class="s">(5)</span></a>, <span class="man-ref">gem<span class="s">(1)</span></span></p>
|
155
178
|
|
156
179
|
|
157
|
-
<ol class='foot man'>
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
</ol>
|
180
|
+
<ol class='man-decor man-foot man foot'>
|
181
|
+
<li class='tl'>Mark Wunsch</li>
|
182
|
+
<li class='tc'>October 2012</li>
|
183
|
+
<li class='tr'>tumblr(1)</li>
|
184
|
+
</ol>
|
162
185
|
|
163
|
-
</div>
|
186
|
+
</div>
|
164
187
|
</body>
|
165
188
|
</html>
|
data/man/tumblr.1.ronn
CHANGED
@@ -3,88 +3,107 @@ tumblr(1) -- publish to tumblr.com
|
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
5
|
|
6
|
-
`tumblr` [
|
6
|
+
`tumblr` COMMAND [ARGS]
|
7
7
|
|
8
8
|
## DESCRIPTION
|
9
9
|
|
10
|
-
`tumblr` is a command line utility and Ruby library for working with Tumblr.com. It can read plain-text files and publish them to Tumblr.
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
If you preface your
|
15
|
-
|
16
|
-
##
|
17
|
-
|
18
|
-
*
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
*
|
28
|
-
|
29
|
-
|
10
|
+
`tumblr` is a command line utility and Ruby library for working with Tumblr.com. It can read plain-text and binary files and publish them to Tumblr.
|
11
|
+
|
12
|
+
`tumblr` is driven through a group of [COMMANDS][] (similar to `git` or `rbenv`).
|
13
|
+
|
14
|
+
If you preface your plaintext file with a bit of YAML (<yaml.org>) frontmatter, you can give `tumblr` more explicit instructions for how to publish your post. See tumblr(5) for available YAML parameters.
|
15
|
+
|
16
|
+
## COMMANDS
|
17
|
+
|
18
|
+
* `tumblr post` <POST> | <FILE> | <URL>:
|
19
|
+
Post to tumblr.
|
20
|
+
A <POST> is a piece of plaintext, assumed to be formatted as `tumblr(5)`.
|
21
|
+
<FILE> is a path to a <POST>. If <FILE> has a binary extension, that file will be uploaded as an image, audio, or video post.
|
22
|
+
<URL> will create a link-type post, or a video or audio post, depending on the location of the url.
|
23
|
+
|
24
|
+
* `tumblr pipe`:
|
25
|
+
Read from STDIN and post to tumblr.
|
26
|
+
|
27
|
+
* `tumblr edit` <POST_ID>:
|
28
|
+
Edit <POST_ID> on tumblr.
|
29
|
+
Will open the serialized post in the foreground with $TUMBLREDITOR then $EDITOR.
|
30
|
+
|
31
|
+
* `tumblr fetch` <POST_ID>:
|
32
|
+
Fetch <POST_ID> from tumblr and write out its serialized form.
|
33
|
+
|
34
|
+
* `tumblr delete` <POST_ID>:
|
35
|
+
Delete <POST_ID> from tumblr.
|
36
|
+
|
37
|
+
* `tumblr help` [<TASK>]:
|
38
|
+
Print the help message and the description for <TASK>.
|
39
|
+
|
40
|
+
* `tumblr authorize`:
|
41
|
+
Start a web server and application to authenticate to tumblr and authorize the cli.
|
42
|
+
See [AUTHORIZATION][]
|
43
|
+
|
44
|
+
* `tumblr version`:
|
45
|
+
Print the `tumblr` version and quit.
|
46
|
+
|
47
|
+
## POSTING OPTIONS
|
48
|
+
|
49
|
+
These options are used when posting to tumblr, i.e. when using `tumblr post` or `tumblr pipe`.
|
50
|
+
|
30
51
|
* `-p`,`--publish`:
|
31
|
-
Publish
|
52
|
+
Publish this post (ignoring the `state` parameter set in the post).
|
32
53
|
|
33
54
|
* `-q`,`--queue`:
|
34
|
-
Add
|
35
|
-
|
55
|
+
Add this post to the queue.
|
56
|
+
|
36
57
|
* `-d`,`--draft`:
|
37
|
-
Save
|
38
|
-
|
39
|
-
* `--group`=_GROUP_:
|
40
|
-
Publish the post to a _GROUP_ tumblelog.
|
58
|
+
Save this post as a draft.
|
41
59
|
|
42
|
-
Other:
|
43
60
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
61
|
+
## COMMON OPTIONS
|
62
|
+
|
63
|
+
* `--credentials`=_PATH_:
|
64
|
+
The file where your OAuth keys are stored.
|
65
|
+
When authenticating, this path is where the keys should be stored.
|
66
|
+
|
67
|
+
* `--host`=_HOST_:
|
68
|
+
The hostname of the Tumblr account your posting to.
|
69
|
+
Posting and fetching posts require the hostname.
|
70
|
+
|
71
|
+
## AUTHORIZATION
|
72
|
+
|
73
|
+
Most actions of the cli require authorization to Tumblr. `tumblr authorize` provides a mechanism to authenticate and authorize the cli.
|
74
|
+
|
75
|
+
In order to use `tumblr`, you first need to [register](http://www.tumblr.com/oauth/apps) an OAuth application with tumblr.
|
76
|
+
|
77
|
+
Run `tumblr authorize` to start up server, and type in the consumer key and secret. You'll then be asked to authorize the app.
|
78
|
+
These keys are saved to the file noted in `--credentials`, defaulting to `~/.tumblr`.
|
79
|
+
If you choose not to use this default, you will need to enter the `--credentials` option every time you post.
|
80
|
+
Alternatively, use the `$TUMBLRCRED` environment variable.
|
49
81
|
|
50
82
|
## EXAMPLES
|
51
83
|
|
52
84
|
Publish a file to Tumblr.com:
|
53
85
|
|
54
|
-
$ tumblr my_post.txt
|
55
|
-
|
86
|
+
$ tumblr post my_post.txt
|
87
|
+
|
56
88
|
Or from standard input:
|
57
89
|
|
58
|
-
$ cat data.yml my_post.txt | tumblr
|
59
|
-
|
90
|
+
$ cat data.yml my_post.txt | tumblr --host=mwunsch.tumblr.com
|
91
|
+
|
60
92
|
Make a Link post:
|
61
93
|
|
62
|
-
$ tumblr http://github.com/mwunsch/tumblr
|
63
|
-
|
64
|
-
Or a Video post:
|
94
|
+
$ tumblr post http://github.com/mwunsch/tumblr
|
65
95
|
|
66
|
-
|
67
|
-
|
68
|
-
Save it as a draft:
|
69
|
-
|
70
|
-
$ tumblr -d http://www.youtube.com/watch?v=CW0DUg63lqU
|
71
|
-
|
72
|
-
Authenticate with credentials given from a file:
|
96
|
+
Or a Video post:
|
73
97
|
|
74
|
-
$
|
75
|
-
email: tumblruser@generic-email.com
|
76
|
-
password: myvoiceismypassport
|
77
|
-
$ cat data.yml my_post.txt | tumblr --credentials ~/.tumblrlogin
|
78
|
-
|
79
|
-
## INSTALLATION
|
98
|
+
$ tumblr post http://www.youtube.com/watch?v=CW0DUg63lqU
|
80
99
|
|
81
|
-
|
100
|
+
Save it as a draft:
|
82
101
|
|
83
|
-
|
102
|
+
$ tumblr post -d http://www.youtube.com/watch?v=CW0DUg63lqU
|
84
103
|
|
85
104
|
## COPYRIGHT
|
86
105
|
|
87
|
-
Tumblr (the gem) is Copyright (C) 2010 Mark Wunsch
|
106
|
+
Tumblr (the gem) is Copyright (C) 2010 - 2012 Mark Wunsch
|
88
107
|
|
89
108
|
Tumblr is Copyright (c) Tumblr, Inc. The Tumblr gem is NOT affiliated with Tumblr, Inc.
|
90
109
|
|