pinpress 1.3.3 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/HISTORY.md +5 -0
- data/README.md +57 -56
- data/bin/pinpress +45 -43
- data/lib/pinpress/constants.rb +1 -1
- data/lib/pinpress.rb +8 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 271e0acf9b01155f4eb894e840347967bb5795c7
|
4
|
+
data.tar.gz: eb6f48a7cdc0f339fd1dea648daeebd9dacb6588
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c92541fd0e817f807199cc9a9de82bb32bb52e7943905e2747b58ca99b5c42d6054e810e04a2a0350336d8795fb13e5efd56c73967f5e4385fa3fe39310aa90
|
7
|
+
data.tar.gz: e2241935876943ce235bc5e608560ea506e4a0084568dc7896acb9e67582edb2001e0e242010e1ad8165821b9dee2b591528ddd8f293692fb3fd5face023828a
|
data/HISTORY.md
CHANGED
data/README.md
CHANGED
@@ -42,7 +42,7 @@ SYNOPSIS
|
|
42
42
|
pinpress [global options] command [command options] [arguments...]
|
43
43
|
|
44
44
|
VERSION
|
45
|
-
1.
|
45
|
+
1.4.0
|
46
46
|
|
47
47
|
GLOBAL OPTIONS
|
48
48
|
--help - Show this message
|
@@ -97,6 +97,7 @@ grab:
|
|
97
97
|
|
98
98
|
* `-s`: the start date to use (uses [Chronic](https://github.com/mojombo/chronic "Chronic"), which allows dates like "last Tuesday")
|
99
99
|
* `-e`: the end date to use (also uses [Chronic](https://github.com/mojombo/chronic "Chronic"))
|
100
|
+
* `-m`: the PinPress template to use
|
100
101
|
* `-n`: the number of pins to return (e.g., 20)
|
101
102
|
* `-t`: a CSV list of tags (e.g., "tag1,tag2") that must exist for the returned pins
|
102
103
|
|
@@ -156,6 +157,7 @@ based on the [Tag Template](#tag-templates "Tag Templates") provided.
|
|
156
157
|
Pinpress also provides some flags that allow a user to define specific tags to
|
157
158
|
grab:
|
158
159
|
|
160
|
+
* `-m`: the PinPress template to use
|
159
161
|
* `-s`: the start date to use (uses [Chronic](https://github.com/mojombo/chronic "Chronic"), which allows dates like "last Tuesday")
|
160
162
|
* `-e`: the end date to use (also uses [Chronic](https://github.com/mojombo/chronic "Chronic"))
|
161
163
|
|
@@ -210,20 +212,20 @@ config file -- as an example:
|
|
210
212
|
|
211
213
|
```yaml
|
212
214
|
pin_templates:
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
215
|
+
pinpress_default
|
216
|
+
opener: "<ul>\n"
|
217
|
+
item: >
|
218
|
+
<li>
|
219
|
+
<b><a title="<%= description %>" href="<%= href %>" target="_blank">
|
220
|
+
<%= description %></a>.</b>
|
221
|
+
<%= extended %>
|
222
|
+
</li>
|
223
|
+
closer: "</ul>"
|
224
|
+
# ... other templates ...
|
222
225
|
```
|
223
226
|
|
224
227
|
A Pin Template can have several different sub-keys:
|
225
228
|
|
226
|
-
* `name` (**required**): the name of the template
|
227
229
|
* `opener` (*optional*): the text that should exist above the pins
|
228
230
|
* `closer` (*optional*): the text that should exist below the pins
|
229
231
|
* `item` (**required**): the formatted text that should be output for every pin
|
@@ -247,7 +249,7 @@ filled by a pin's values:
|
|
247
249
|
Pin Templates can be used in two ways: they can either be called dynamically:
|
248
250
|
|
249
251
|
```bash
|
250
|
-
$ pinpress pins template_name
|
252
|
+
$ pinpress pins -m template_name
|
251
253
|
```
|
252
254
|
|
253
255
|
...or a default template can be specified in `~/.pinpress`:
|
@@ -259,15 +261,16 @@ pinpress:
|
|
259
261
|
default_pin_template: pinpress_default
|
260
262
|
# ... other keys ...
|
261
263
|
pin_templates:
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
264
|
+
pinpress_default
|
265
|
+
opener: "<ul>\n"
|
266
|
+
item: >
|
267
|
+
<li>
|
268
|
+
<b><a title="<%= description %>" href="<%= href %>" target="_blank">
|
269
|
+
<%= description %></a>.</b>
|
270
|
+
<%= extended %>
|
271
|
+
</li>
|
272
|
+
closer: "</ul>"
|
273
|
+
# ... other templates ...
|
271
274
|
```
|
272
275
|
|
273
276
|
So, knowing the above, both:
|
@@ -279,7 +282,7 @@ $ pinpress pins
|
|
279
282
|
...and:
|
280
283
|
|
281
284
|
```bash
|
282
|
-
$ pinpress pins pinpress_default
|
285
|
+
$ pinpress pins -m pinpress_default
|
283
286
|
```
|
284
287
|
|
285
288
|
...will output pin data in the format specified by that template:
|
@@ -312,13 +315,12 @@ They, too, are defined in `~/.pinpress`:
|
|
312
315
|
|
313
316
|
```yaml
|
314
317
|
tag_templates:
|
315
|
-
|
316
|
-
|
318
|
+
pinpress_default
|
319
|
+
item: "<%= tag %> (<%= count %>),"
|
317
320
|
```
|
318
321
|
|
319
322
|
A Tag Template makes use of the same sub-keys as Pin Template:
|
320
323
|
|
321
|
-
* `name` (**required**): the name of the template
|
322
324
|
* `opener` (*optional*): the text that should exist above the tag string
|
323
325
|
* `closer` (*optional*): the text that should exist below the tag string
|
324
326
|
* `item` (**required**): the formatted text that should be output for every tag
|
@@ -336,7 +338,7 @@ range used)
|
|
336
338
|
Pin Templates can be used in two ways: they can either be called dynamically:
|
337
339
|
|
338
340
|
```bash
|
339
|
-
$ pinpress tags template_name
|
341
|
+
$ pinpress tags -m template_name
|
340
342
|
```
|
341
343
|
|
342
344
|
...or a default template can be specified in `~/.pinpress`:
|
@@ -350,8 +352,9 @@ pinpress:
|
|
350
352
|
pin_templates:
|
351
353
|
# ... other keys ...
|
352
354
|
tag_templates:
|
353
|
-
|
354
|
-
|
355
|
+
pinpress_default
|
356
|
+
item: "<%= tag %> (<%= count %>),"
|
357
|
+
# ... other templates ...
|
355
358
|
```
|
356
359
|
|
357
360
|
So, knowing the above, both:
|
@@ -363,7 +366,7 @@ $ pinpress tags
|
|
363
366
|
...and:
|
364
367
|
|
365
368
|
```bash
|
366
|
-
$ pinpress tags pinpress_default
|
369
|
+
$ pinpress tags -m pinpress_default
|
367
370
|
```
|
368
371
|
|
369
372
|
...will output tag data in the format specified by that template:
|
@@ -420,35 +423,33 @@ pinpress:
|
|
420
423
|
log_level: WARN
|
421
424
|
version: 1.1.1
|
422
425
|
api_token: bachya:1234567890987654321
|
423
|
-
last_pins_run: 2014-04-29
|
424
|
-
last_tags_run: 2014-04-29
|
425
426
|
pin_templates:
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
427
|
+
pinpress_default
|
428
|
+
opener: >
|
429
|
+
<em>The weekly Link Mash is a curated selection of tools, stories, and
|
430
|
+
other links that I found during my travels on the web. All of my curated
|
431
|
+
links can be found on <a title="Bachya's Pinboard: Link Mash"
|
432
|
+
href="https://pinboard.in/u:bachya/t:link-mash/" target="_blank">
|
433
|
+
my Pinboard</a>; you can also find the Link Mash archives <a
|
434
|
+
href="http://www.bachyaproductions.com/tag/link-mash/">here</a>.
|
435
|
+
</em>
|
436
|
+
<ul>
|
437
|
+
item: >
|
438
|
+
<li>
|
439
|
+
<b><a title="<%= description %>" href="<%= href %>" target="_blank">
|
440
|
+
<%= description %></a>.</b>
|
441
|
+
<%= extended %>
|
442
|
+
</li>
|
443
|
+
closer: >
|
444
|
+
</ul>
|
445
|
+
<hr/>
|
446
|
+
<em>This Link Mash was generated by <a title="PinPress"
|
447
|
+
href="https://github.com/bachya/pinpress" target="_blank">PinPress</a>,
|
448
|
+
a simple tool to generate text templates from <a title="Pinboard"
|
449
|
+
href="https://pinboard.in" target="_blank">Pinboard</a> data.</em>"
|
449
450
|
tag_templates:
|
450
|
-
|
451
|
-
|
451
|
+
pinpress_default
|
452
|
+
item: "<%= tag %>,"
|
452
453
|
```
|
453
454
|
|
454
455
|
# Known Issues & Future Releases
|
data/bin/pinpress
CHANGED
@@ -92,11 +92,11 @@ end
|
|
92
92
|
# ======================================================
|
93
93
|
# Error (runs when an exception is raised)
|
94
94
|
# ======================================================
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
95
|
+
on_error do |exception|
|
96
|
+
messenger.error(exception.to_s)
|
97
|
+
exit!(1)
|
98
|
+
true
|
99
|
+
end
|
100
100
|
|
101
101
|
# ======================================================
|
102
102
|
# Commands
|
@@ -130,6 +130,7 @@ end
|
|
130
130
|
desc 'Get pins from Pinboard'
|
131
131
|
command :pins do |c|
|
132
132
|
c.flag([:e], desc: 'The end date to pull pins to')
|
133
|
+
c.flag([:m], desc: 'The pin template to use')
|
133
134
|
c.flag([:n], desc: 'The number of results to return')
|
134
135
|
c.flag([:s], desc: 'The start date to pull pins from')
|
135
136
|
c.flag([:t], desc: 'The tags to use (e.g., "ruby,pinboard")')
|
@@ -140,7 +141,7 @@ command :pins do |c|
|
|
140
141
|
|
141
142
|
# Figure out the template to use based on the passed argument (if any)
|
142
143
|
# and/or the presence of a default template.
|
143
|
-
template = PinPress.init_template(
|
144
|
+
template_name, template = PinPress.init_template(options[:m], PinPress::Template::TYPE_PIN)
|
144
145
|
|
145
146
|
# Assuming a valid template is found, transform CLI flags into options for
|
146
147
|
# the Pinboard gem.
|
@@ -154,7 +155,7 @@ command :pins do |c|
|
|
154
155
|
puts output if output
|
155
156
|
|
156
157
|
# Save the last-run date to the configuration file.
|
157
|
-
configuration.
|
158
|
+
configuration.pin_templates[template_name.to_sym].last_run = Time.now.utc.iso8601
|
158
159
|
configuration.save
|
159
160
|
end
|
160
161
|
|
@@ -163,12 +164,12 @@ command :pins do |c|
|
|
163
164
|
last.action do |global_options, options, args|
|
164
165
|
PinPress.verbose = global_options[:v]
|
165
166
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
# and/or the presence of a default template.
|
170
|
-
template = PinPress.init_template(args[0], PinPress::Template::TYPE_PIN)
|
167
|
+
# Figure out the template to use based on the passed argument (if any)
|
168
|
+
# and/or the presence of a default template.
|
169
|
+
template_name, template = PinPress.init_template(options[:m], PinPress::Template::TYPE_PIN)
|
171
170
|
|
171
|
+
last_run_date = configuration.pin_templates[template_name.to_sym].last_run
|
172
|
+
if last_run_date
|
172
173
|
# Set one option: the start date. Set it to the last-run date + 1.
|
173
174
|
opts = {}
|
174
175
|
opts.merge!(fromdt: DateTime.parse(last_run_date) + 1)
|
@@ -179,7 +180,7 @@ command :pins do |c|
|
|
179
180
|
puts output if output
|
180
181
|
|
181
182
|
# Save the last-run date to the configuration file.
|
182
|
-
configuration.
|
183
|
+
configuration.pin_templates[template_name.to_sym].last_run = Time.now.utc.iso8601
|
183
184
|
configuration.save
|
184
185
|
else
|
185
186
|
messenger.warn("`pinpress pins` hasn't been run before.")
|
@@ -196,20 +197,45 @@ end
|
|
196
197
|
desc 'Get tags from Pinboard'
|
197
198
|
command :tags do |c|
|
198
199
|
c.flag([:e], desc: 'The end date to pull pins to')
|
200
|
+
c.flag([:m], desc: 'The template to use')
|
199
201
|
c.flag([:t], desc: 'The tags to use (e.g., "ruby,pinboard")')
|
200
202
|
c.flag([:s], desc: 'The start date to pull pins from')
|
201
203
|
|
204
|
+
c.desc 'Gets unique tags based on the passed criteria'
|
205
|
+
c.action do |global_options, options, args|
|
206
|
+
PinPress.verbose = global_options[:v]
|
207
|
+
|
208
|
+
# Figure out the template to use based on the passed argument (if any)
|
209
|
+
# and/or the presence of a default template.
|
210
|
+
template_name, template = PinPress.init_template(options[:m], PinPress::Template::TYPE_TAG)
|
211
|
+
|
212
|
+
# Assuming a valid template is found, transform CLI flags into options for
|
213
|
+
# the Pinboard gem.
|
214
|
+
opts = {}
|
215
|
+
opts.merge!(todt: Chronic.parse(options[:e])) if options[:e]
|
216
|
+
opts.merge!(fromdt: Chronic.parse(options[:s])) if options[:s]
|
217
|
+
opts.merge!(PinPress.merge_common_options(options))
|
218
|
+
|
219
|
+
# Request tag data from Pinboard and output the return data.
|
220
|
+
output = PinPress.tag_yield(template, opts)
|
221
|
+
puts output if output
|
222
|
+
|
223
|
+
# Save the last-run date to the configuration file.
|
224
|
+
configuration.tag_templates[template_name.to_sym].last_run = Time.now.utc.iso8601
|
225
|
+
configuration.save
|
226
|
+
end
|
227
|
+
|
202
228
|
c.desc 'Gets all tags from the last run date + 1'
|
203
229
|
c.command :last do |last|
|
204
230
|
last.action do |global_options, options, args|
|
205
|
-
|
231
|
+
# Figure out the template to use based on the passed argument (if any)
|
232
|
+
# and/or the presence of a default template.
|
233
|
+
template_name, template = PinPress.init_template(options[:m], PinPress::Template::TYPE_TAG)
|
234
|
+
|
235
|
+
last_run_date = configuration.tag_templates[template_name.to_sym].last_run
|
206
236
|
if last_run_date
|
207
237
|
PinPress.verbose = global_options[:v]
|
208
238
|
|
209
|
-
# Figure out the template to use based on the passed argument (if any)
|
210
|
-
# and/or the presence of a default template.
|
211
|
-
template = PinPress.init_template(args[0], PinPress::Template::TYPE_TAG)
|
212
|
-
|
213
239
|
# Set one option: the start date. Set it to the last-run date + 1.
|
214
240
|
opts = {}
|
215
241
|
opts.merge!(fromdt: DateTime.parse(last_run_date) + 1)
|
@@ -220,37 +246,13 @@ command :tags do |c|
|
|
220
246
|
puts output if output
|
221
247
|
|
222
248
|
# Save the last-run date to the configuration file.
|
223
|
-
configuration.
|
249
|
+
configuration.tag_templates[template_name.to_sym].last_run = Time.now.utc.iso8601
|
224
250
|
configuration.save
|
225
251
|
else
|
226
252
|
messenger.warn("`pinpress tags` hasn't been run before.")
|
227
253
|
end
|
228
254
|
end
|
229
255
|
end
|
230
|
-
|
231
|
-
c.desc 'Gets unique tags based on the passed criteria'
|
232
|
-
c.action do |global_options, options, args|
|
233
|
-
PinPress.verbose = global_options[:v]
|
234
|
-
|
235
|
-
# Figure out the template to use based on the passed argument (if any)
|
236
|
-
# and/or the presence of a default template.
|
237
|
-
template = PinPress.init_template(args[0], PinPress::Template::TYPE_TAG)
|
238
|
-
|
239
|
-
# Assuming a valid template is found, transform CLI flags into options for
|
240
|
-
# the Pinboard gem.
|
241
|
-
opts = {}
|
242
|
-
opts.merge!(todt: Chronic.parse(options[:e])) if options[:e]
|
243
|
-
opts.merge!(fromdt: Chronic.parse(options[:s])) if options[:s]
|
244
|
-
opts.merge!(PinPress.merge_common_options(options))
|
245
|
-
|
246
|
-
# Request tag data from Pinboard and output the return data.
|
247
|
-
output = PinPress.tag_yield(template, opts)
|
248
|
-
puts output if output
|
249
|
-
|
250
|
-
# Save the last-run date to the configuration file.
|
251
|
-
configuration.pinpress.last_tags_run = Time.now.utc.iso8601
|
252
|
-
configuration.save
|
253
|
-
end
|
254
256
|
end
|
255
257
|
|
256
258
|
# ------------------------------------------------------
|
data/lib/pinpress/constants.rb
CHANGED
data/lib/pinpress.rb
CHANGED
@@ -45,11 +45,10 @@ module PinPress
|
|
45
45
|
def get_template(template_name, template_type)
|
46
46
|
case template_type
|
47
47
|
when PinPress::Template::TYPE_PIN
|
48
|
-
|
48
|
+
configuration.pin_templates[template_name.to_sym]
|
49
49
|
when PinPress::Template::TYPE_TAG
|
50
|
-
|
50
|
+
configuration.tag_templates[template_name.to_sym]
|
51
51
|
end
|
52
|
-
templates.find { |t| t[:name] == template_name }
|
53
52
|
end
|
54
53
|
|
55
54
|
# "Initializes" a passed template:
|
@@ -65,14 +64,15 @@ module PinPress
|
|
65
64
|
tag_t_sym = :default_tag_template
|
66
65
|
s = (template_type == PinPress::Template::TYPE_PIN ? pin_t_sym : tag_t_sym)
|
67
66
|
default_template = configuration.pinpress[s]
|
68
|
-
|
67
|
+
|
68
|
+
if explicit_template && PinPress.is_template?(explicit_template, template_type)
|
69
69
|
messenger.debug("Using explicit template: #{ explicit_template }")
|
70
|
-
return PinPress.get_template(explicit_template, template_type)
|
70
|
+
return explicit_template, PinPress.get_template(explicit_template, template_type)
|
71
71
|
elsif PinPress.is_template?(default_template, template_type)
|
72
72
|
messenger.debug("Using default template: #{ default_template }")
|
73
|
-
return PinPress.get_template(default_template, template_type)
|
73
|
+
return default_template, PinPress.get_template(default_template, template_type)
|
74
74
|
else
|
75
|
-
fail 'Invalid template
|
75
|
+
fail 'Invalid template specified and/or no default template defined'
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
@@ -132,7 +132,7 @@ module PinPress
|
|
132
132
|
when PinPress::Template::TYPE_TAG
|
133
133
|
templates = configuration.tag_templates
|
134
134
|
end
|
135
|
-
!templates
|
135
|
+
!templates[template_name.to_sym].nil?
|
136
136
|
end
|
137
137
|
|
138
138
|
# Present a list of installed templates to the user
|