automatic 12.4.0 → 12.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/Gemfile +1 -0
  2. data/README.md +8 -5
  3. data/Rakefile +1 -1
  4. data/VERSION +1 -1
  5. data/automatic.gemspec +32 -9
  6. data/bin/automatic +3 -3
  7. data/bin/automatic-config +34 -17
  8. data/config/feed2console.yml +1 -2
  9. data/config/html2console.yml +16 -0
  10. data/doc/ChangeLog +38 -3
  11. data/doc/PLUGINS +191 -14
  12. data/doc/PLUGINS.ja +187 -10
  13. data/doc/README +70 -42
  14. data/doc/README.ja +64 -58
  15. data/lib/automatic/opml.rb +2 -1
  16. data/lib/automatic/pipeline.rb +3 -3
  17. data/lib/automatic/recipe.rb +6 -1
  18. data/lib/automatic.rb +6 -6
  19. data/plugins/extract/link.rb +32 -0
  20. data/plugins/filter/ignore.rb +7 -16
  21. data/plugins/filter/image_link.rb +37 -0
  22. data/plugins/filter/{image.rb → image_source.rb} +6 -7
  23. data/plugins/filter/reverse.rb +3 -4
  24. data/plugins/filter/tumblr_resize.rb +3 -4
  25. data/plugins/notify/ikachan.rb +1 -2
  26. data/plugins/publish/console.rb +0 -1
  27. data/plugins/publish/dump.rb +24 -0
  28. data/plugins/publish/google_calendar.rb +0 -2
  29. data/plugins/publish/hatena_bookmark.rb +2 -3
  30. data/plugins/store/{store_database.rb → database.rb} +32 -7
  31. data/plugins/store/full_text.rb +5 -5
  32. data/plugins/store/link.rb +47 -0
  33. data/plugins/store/permalink.rb +7 -7
  34. data/plugins/store/target.rb +41 -0
  35. data/plugins/subscription/feed.rb +0 -1
  36. data/plugins/subscription/uri.rb +31 -0
  37. data/script/build +18 -4
  38. data/spec/fixtures/extractLink.html +14 -0
  39. data/spec/fixtures/filterImageLink.html +34 -0
  40. data/spec/fixtures/publishDump.html +14 -0
  41. data/{config/default.yml → spec/fixtures/sampleRecipe.yml} +8 -10
  42. data/spec/fixtures/storeLink.html +34 -0
  43. data/spec/fixtures/storeLink2.html +36 -0
  44. data/spec/fixtures/storeTarget.html +11 -0
  45. data/spec/fixtures/storeTarget2.html +11 -0
  46. data/spec/lib/automatic/pipeline_spec.rb +27 -14
  47. data/spec/lib/automatic/recipe_spec.rb +35 -0
  48. data/spec/lib/automatic_spec.rb +21 -14
  49. data/spec/plugins/extract/link_spec.rb +38 -0
  50. data/spec/plugins/filter/ignore_spec.rb +59 -3
  51. data/spec/plugins/filter/image_link_spec.rb +51 -0
  52. data/spec/plugins/filter/{image_spec.rb → image_source_spec.rb} +29 -9
  53. data/spec/plugins/filter/reverse_spec.rb +0 -1
  54. data/spec/plugins/filter/tumblr_resize_spec.rb +7 -0
  55. data/spec/plugins/publish/console_spec.rb +9 -2
  56. data/spec/plugins/publish/dump_spec.rb +32 -0
  57. data/spec/plugins/publish/google_calendar_spec.rb +2 -1
  58. data/spec/plugins/publish/hatena_bookmark_spec.rb +2 -1
  59. data/spec/plugins/publish/mail_spec.rb +9 -1
  60. data/spec/plugins/publish/smtp_spec.rb +9 -1
  61. data/spec/plugins/store/full_text_spec.rb +15 -5
  62. data/spec/plugins/store/link_spec.rb +47 -0
  63. data/spec/plugins/store/permalink_spec.rb +9 -2
  64. data/spec/plugins/store/target_link_spec.rb +17 -3
  65. data/spec/plugins/store/target_spec.rb +41 -0
  66. data/spec/plugins/subscription/feed_spec.rb +14 -4
  67. data/spec/plugins/subscription/uri_spec.rb +43 -0
  68. data/spec/spec_helper.rb +31 -8
  69. data/spec/user_dir/plugins/store/mock.rb +4 -0
  70. data/test/integration/test_activerecord.yml +1 -1
  71. data/test/integration/test_fulltext.yml +1 -1
  72. data/test/integration/test_get_image.yml +26 -0
  73. data/test/integration/test_hatenabookmark.yml +1 -1
  74. data/test/integration/test_ignore.yml +1 -1
  75. data/test/integration/test_ignore2.yml +1 -1
  76. data/test/integration/test_image2local.yml +1 -1
  77. data/test/integration/test_reverse.yml +1 -1
  78. data/test/integration/test_tumblr2local.yml +1 -1
  79. metadata +45 -9
  80. data/spec/lib/pipeline_spec.rb +0 -67
  81. data/test/integration/test_mail.yml +0 -21
data/doc/PLUGINS CHANGED
@@ -7,6 +7,12 @@ SubscriptionFeed
7
7
  [Path]
8
8
  /plugins/subscription/feed.rb
9
9
 
10
+ [Input]
11
+ None
12
+
13
+ [Output]
14
+ Feed
15
+
10
16
  [Abstract]
11
17
  Subscribe to feed.
12
18
 
@@ -23,6 +29,12 @@ FilterReverse
23
29
  [Path]
24
30
  /plugins/filter/reverse.rb
25
31
 
32
+ [Input]
33
+ Feed
34
+
35
+ [Output]
36
+ Feed
37
+
26
38
  [Abstract]
27
39
  Sort feed by date asc.
28
40
 
@@ -35,6 +47,12 @@ FilterIgnore
35
47
  [Path]
36
48
  /plugins/filter/ignore.rb
37
49
 
50
+ [Input]
51
+ Feed
52
+
53
+ [Output]
54
+ Feed
55
+
38
56
  [Abstract]
39
57
  To exclude the NG word.
40
58
 
@@ -46,17 +64,23 @@ FilterIgnore
46
64
  - KEYWORD ...
47
65
 
48
66
 
49
- FilterImage
50
- ------------
67
+ FilterImageSource
68
+ -----------------
51
69
  [Path]
52
- /plugins/filter/image.rb
70
+ /plugins/filter/image_source.rb
71
+
72
+ [Input]
73
+ Feed
74
+
75
+ [Output]
76
+ Feed
53
77
 
54
78
  [Abstract]
55
- Rewrite the permalink to link of the image in the contents.
56
- If there is no link of image, the permalink will be nil.
79
+ Rewrite the permalink to source of the image in the contents.
80
+ If there is no source of image, the permalink will be nil.
57
81
 
58
82
  [Syntax]
59
- - module: FilterImage
83
+ - module: FilterImageSource
60
84
 
61
85
 
62
86
  FilterTumblrResize
@@ -64,6 +88,12 @@ FilterTumblrResize
64
88
  [Path]
65
89
  /plugins/filter/tumblr_resize.rb
66
90
 
91
+ [Input]
92
+ Feed
93
+
94
+ [Output]
95
+ Feed
96
+
67
97
  [Abstract]
68
98
  To rewrite the permalink to the maximum size of
69
99
  the Tumblr (High Res).
@@ -80,12 +110,18 @@ StorePermalink
80
110
  [Path]
81
111
  /plugins/store/permalink.rb
82
112
 
113
+ [Input]
114
+ Feed
115
+
116
+ [Output]
117
+ Feed
118
+
83
119
  [Abstract]
84
- To save a permanent link.
120
+ Save a permanent link.
85
121
  The duplicate permalink will be discarded.
86
122
 
87
123
  [Syntax]
88
- - module: StoreBookmark
124
+ - module: StorePermalink
89
125
  config:
90
126
  db: DB_NAME
91
127
 
@@ -95,8 +131,14 @@ StoreFullText
95
131
  [Path]
96
132
  /plugins/store/full_text.rb
97
133
 
134
+ [Input]
135
+ Feed
136
+
137
+ [Output]
138
+ Feed
139
+
98
140
  [Abstract]
99
- To save a full text of contents.
141
+ Save a full text of contents.
100
142
 
101
143
  Saved text can be viewed in the viewer below
102
144
  https://github.com/id774/blog_viewer
@@ -112,8 +154,14 @@ StoreTargetLink
112
154
  [Path]
113
155
  /plugins/store/target_link.rb
114
156
 
157
+ [Input]
158
+ Feed
159
+
160
+ [Output]
161
+ Feed
162
+
115
163
  [Abstract]
116
- To store target locally.
164
+ Store target locally.
117
165
  This emulate "Right click to save".
118
166
 
119
167
  [Syntax]
@@ -128,6 +176,12 @@ PublishConsole
128
176
  [Path]
129
177
  /plugins/publish/console.rb
130
178
 
179
+ [Input]
180
+ Feed
181
+
182
+ [Output]
183
+ Feed
184
+
131
185
  [Abstract]
132
186
  Output pipeline to the console.
133
187
 
@@ -140,6 +194,12 @@ PublishHatenaBookmark
140
194
  [Path]
141
195
  /plugins/publish/hatenabookmark.rb
142
196
 
197
+ [Input]
198
+ Feed
199
+
200
+ [Output]
201
+ Feed
202
+
143
203
  [Abstract]
144
204
  To Hatena Bookmark (Social Bookmark).
145
205
 
@@ -160,13 +220,19 @@ PublishGoogleCalendar
160
220
  [Path]
161
221
  /plugins/publish/google_calendar.rb
162
222
 
223
+ [Input]
224
+ Feed
225
+
226
+ [Output]
227
+ Feed
228
+
163
229
  [Abstract]
164
230
  To register an appointment to Google Calendar.
165
231
 
166
232
  [Description]
167
233
  Register item.title to Google Calendar.
168
234
 
169
- [Notation recipe]
235
+ [Syntax]
170
236
  - module: PublishGoogleCalendar
171
237
  config:
172
238
  username: GOOGLE_ACCOUNT
@@ -179,6 +245,12 @@ NotifyIkachan
179
245
  [Path]
180
246
  /plugins/notify/ikachan.rb
181
247
 
248
+ [Input]
249
+ Feed
250
+
251
+ [Output]
252
+ Feed
253
+
182
254
  [Abstract]
183
255
  To send a message to ikachan.
184
256
 
@@ -199,7 +271,13 @@ NotifyIkachan
199
271
  CustomFeedSVNLog
200
272
  ----------------
201
273
  [Path]
202
- /plugins/custom/feed_svn_log.rb
274
+ /plugins/custom_feed/svn_log.rb
275
+
276
+ [Input]
277
+ None
278
+
279
+ [Output]
280
+ Feed
203
281
 
204
282
  [Abstract]
205
283
  Get new revision info from SVN.
@@ -207,11 +285,110 @@ CustomFeedSVNLog
207
285
  [Description]
208
286
  To get the number that is specified by fetch_items.
209
287
 
210
- [Notation recipe]
211
- - Module: CustomFeedSVNLog
288
+ [Syntax]
212
289
  - module: CustomFeedSVNLog
213
290
  config:
214
291
  target: http://redmine.rubyforge.org/svn
215
292
  fetch_items: 2 # If not specified, 30
216
293
 
217
294
 
295
+ SubscriptionURI
296
+ ---------------
297
+ [Path]
298
+ /plugins/subscription/uri.rb
299
+
300
+ [Input]
301
+ None
302
+
303
+ [Output]
304
+ HTML
305
+
306
+ [Description]
307
+ Open http or ftp URL to file object.
308
+
309
+ [Syntax]
310
+ - module: CustomFeedURI
311
+ config:
312
+ url:
313
+ - URL
314
+ - URL ...
315
+
316
+
317
+ ExtractLink
318
+ -----------
319
+ [Path]
320
+ /plugins/extract/link.rb
321
+
322
+ [Input]
323
+ HTML
324
+
325
+ [Output]
326
+ An array of links.
327
+
328
+ [Description]
329
+ Extract a link in HTML.
330
+
331
+ [Syntax]
332
+ - module: FilterLink
333
+
334
+
335
+ FilterImageLink
336
+ ---------------
337
+ [Path]
338
+ /plugins/filter/image_link.rb
339
+
340
+ [Input]
341
+ An array of links.
342
+
343
+ [Output]
344
+ An array of links.
345
+
346
+ [Description]
347
+ Extract image's link from HTML.
348
+
349
+ [Syntax]
350
+ - module: FilterImageLink
351
+
352
+
353
+ StoreLink
354
+ ---------
355
+ [Path]
356
+ /plugins/store/link.rb
357
+
358
+ [Input]
359
+ An array of links.
360
+
361
+ [Output]
362
+ An array of links.
363
+
364
+ [Abstract]
365
+ Save a permanent link.
366
+ The duplicate permalink will be discarded.
367
+ This is a HTML version for StorePermalink.
368
+
369
+ [Syntax]
370
+ - module: StoreLink
371
+ config:
372
+ db: DB_NAME
373
+
374
+
375
+ StoreTarget
376
+ -----------
377
+ [Path]
378
+ /plugins/store/target.rb
379
+
380
+ [Input]
381
+ An array of links.
382
+
383
+ [Output]
384
+ An array of links.
385
+
386
+ [Description]
387
+ Store target locally by a link in HTML.
388
+ This emulate "Right click to save".
389
+
390
+ [Syntax]
391
+ - module: StoreTarget
392
+ config:
393
+ path: SAVE_TO_PATH
394
+ interval: INTERVAL_FOR_DOWNLOAD (in seconds.)
data/doc/PLUGINS.ja CHANGED
@@ -7,6 +7,12 @@ SubscriptionFeed
7
7
  [パス]
8
8
  /plugins/subscription/feed.rb
9
9
 
10
+ [入力]
11
+ 無し
12
+
13
+ [出力]
14
+ フィード
15
+
10
16
  [概要]
11
17
  フィードを購読する
12
18
 
@@ -23,11 +29,17 @@ FilterReverse
23
29
  [パス]
24
30
  /plugins/filter/reverse.rb
25
31
 
32
+ [入力]
33
+ フィード
34
+
35
+ [出力]
36
+ フィード
37
+
26
38
  [概要]
27
39
  日付の昇順にソートする
28
40
 
29
41
  [レシピ記法]
30
- - module: FilterImage
42
+ - module: FilterReverse
31
43
 
32
44
 
33
45
  FilterIgnore
@@ -35,6 +47,12 @@ FilterIgnore
35
47
  [パス]
36
48
  /plugins/filter/ignore.rb
37
49
 
50
+ [入力]
51
+ フィード
52
+
53
+ [出力]
54
+ フィード
55
+
38
56
  [概要]
39
57
  NG ワードを除外する
40
58
 
@@ -46,17 +64,23 @@ FilterIgnore
46
64
  - 無視キーワード ...
47
65
 
48
66
 
49
- FilterImage
50
- ------------
67
+ FilterImageSource
68
+ -----------------
51
69
  [パス]
52
- /plugins/filter/image.rb
70
+ /plugins/filter/image_source.rb
71
+
72
+ [入力]
73
+ フィード
74
+
75
+ [出力]
76
+ フィード
53
77
 
54
78
  [概要]
55
- パーマリンクを本文中の画像のリンクに書き換える
56
- 画像のリンクが無い場合は nil にする
79
+ パーマリンクを本文中の画像のソースリンクに書き換える
80
+ 画像のソースリンクが無い場合は nil にする
57
81
 
58
82
  [レシピ記法]
59
- - module: FilterImage
83
+ - module: FilterImageSource
60
84
 
61
85
 
62
86
  FilterTumblrResize
@@ -64,6 +88,12 @@ FilterTumblrResize
64
88
  [パス]
65
89
  /plugins/filter/tumblr_resize.rb
66
90
 
91
+ [入力]
92
+ フィード
93
+
94
+ [出力]
95
+ フィード
96
+
67
97
  [概要]
68
98
  パーマリンクを Tumblr の最大サイズ
69
99
  (High Res) に書き換える
@@ -80,14 +110,20 @@ StorePermalink
80
110
  [パス]
81
111
  /plugins/store/permalink.rb
82
112
 
113
+ [入力]
114
+ フィード
115
+
116
+ [出力]
117
+ フィード
118
+
83
119
  [概要]
84
120
  パーマリンクを保存する
85
121
  重複したパーマリンクは破棄する
86
122
 
87
123
  [レシピ記法]
88
- - module: StoreBookmark
124
+ - module: StorePermalink
89
125
  config:
90
- db: ブックマークを保存する SQLite3 DB 名
126
+ db: パーマリンクを保存する SQLite3 DB 名
91
127
 
92
128
 
93
129
  StoreFullText
@@ -95,6 +131,12 @@ StoreFullText
95
131
  [パス]
96
132
  /plugins/store/full_text.rb
97
133
 
134
+ [入力]
135
+ フィード
136
+
137
+ [出力]
138
+ フィード
139
+
98
140
  [概要]
99
141
  フィード全文を DB に保存する
100
142
 
@@ -112,6 +154,12 @@ StoreTargetLink
112
154
  [パス]
113
155
  /plugins/store/target_link.rb
114
156
 
157
+ [入力]
158
+ フィード
159
+
160
+ [出力]
161
+ フィード
162
+
115
163
  [概要]
116
164
  リンク先のコンテンツをローカルに保存する
117
165
 
@@ -127,6 +175,12 @@ PublishConsole
127
175
  [パス]
128
176
  /plugins/publish/console.rb
129
177
 
178
+ [入力]
179
+ フィード
180
+
181
+ [出力]
182
+ フィード
183
+
130
184
  [概要]
131
185
  パイプラインをコンソールに出力する
132
186
 
@@ -142,6 +196,12 @@ PublishHatenaBookmark
142
196
  [概要]
143
197
  はてなブックマークをする
144
198
 
199
+ [入力]
200
+ フィード
201
+
202
+ [出力]
203
+ フィード
204
+
145
205
  [説明]
146
206
  はてなブックマーク API への投稿用 XML を生成し
147
207
  送信する
@@ -162,6 +222,12 @@ PublishGoogleCalendar
162
222
  [概要]
163
223
  Google Calendar に予定を登録する
164
224
 
225
+ [入力]
226
+ フィード
227
+
228
+ [出力]
229
+ フィード
230
+
165
231
  [説明]
166
232
  item.title を Google カレンダーに登録する
167
233
 
@@ -181,6 +247,12 @@ NotifyIkachan
181
247
  [概要]
182
248
  ikachan へメッセージを送信する
183
249
 
250
+ [入力]
251
+ フィード
252
+
253
+ [出力]
254
+ フィード
255
+
184
256
  [説明]
185
257
  ikachan へ HTTP 経由で POST する
186
258
  ikachan とは: http://blog.yappo.jp/yappo/archives/000760.html
@@ -198,7 +270,13 @@ NotifyIkachan
198
270
  CustomFeedSVNLog
199
271
  ----------------
200
272
  [パス]
201
- /plugins/custom/feed_svn_log.rb
273
+ /plugins/custom_feed/svn_log.rb
274
+
275
+ [入力]
276
+ 無し
277
+
278
+ [出力]
279
+ フィード
202
280
 
203
281
  [概要]
204
282
  SVN から新しいリビジョン情報を取得する
@@ -214,3 +292,102 @@ CustomFeedSVNLog
214
292
  fetch_items: 2 # 指定されない場合は 30
215
293
 
216
294
 
295
+ SubscriptionURI
296
+ ---------------
297
+ [パス]
298
+ /plugins/subscription/uri.rb
299
+
300
+ [入力]
301
+ 無し
302
+
303
+ [出力]
304
+ HTML
305
+
306
+ [概要]
307
+ http/ftp の URL をファイルオブジェクトとして開く
308
+
309
+ [レシピ記法]
310
+ - module: CustomFeedURI
311
+ config:
312
+ url:
313
+ - URL
314
+ - URL ...
315
+
316
+
317
+ ExtractLink
318
+ -----------
319
+ [パス]
320
+ /plugins/extract/link.rb
321
+
322
+ [入力]
323
+ HTML
324
+
325
+ [出力]
326
+ An array of links.
327
+
328
+ [概要]
329
+ HTML の a リンクのみを抽出する
330
+
331
+ [レシピ記法]
332
+ - module: FilterLink
333
+
334
+
335
+ FilterImageLink
336
+ ---------------
337
+ [パス]
338
+ /plugins/filter/image_link.rb
339
+
340
+ [入力]
341
+ An array of links.
342
+
343
+ [出力]
344
+ An array of links.
345
+
346
+ [概要]
347
+ 画像ファイルのリンクのみを抽出する
348
+
349
+ [レシピ記法]
350
+ - module: FilterImageLink
351
+
352
+
353
+ StoreLink
354
+ ---------
355
+ [パス]
356
+ /plugins/store/link.rb
357
+
358
+ [入力]
359
+ An array of links.
360
+
361
+ [出力]
362
+ An array of links.
363
+
364
+ [概要]
365
+ パーマリンクを保存する
366
+ 重複したパーマリンクは破棄する
367
+ これは StorePermalink の HTML 版である
368
+
369
+ [レシピ記法]
370
+ - module: StoreLink
371
+ config:
372
+ db: パーマリンクを保存する SQLite3 DB 名
373
+
374
+
375
+ StoreTarget
376
+ -----------
377
+ [パス]
378
+ /plugins/store/target.rb
379
+
380
+ [入力]
381
+ An array of links.
382
+
383
+ [出力]
384
+ An array of links.
385
+
386
+ [概要]
387
+ HTML の a リンク先のコンテンツをローカルに保存する
388
+
389
+ [レシピ記法]
390
+ - module: StoreTarget
391
+ config:
392
+ path: 保存先のフォルダ
393
+ interval: 保存する間隔 (秒)