automatic 14.12.2 → 26.08

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +635 -83
  3. data/VERSION +1 -1
  4. data/automatic.gemspec +109 -248
  5. data/bin/automatic +20 -139
  6. data/config/feed2console.yml +10 -4
  7. data/config/feed2markdown.yml +41 -0
  8. data/doc/AI_TUTORIAL.md +518 -0
  9. data/doc/BASIC_DESIGN.md +516 -0
  10. data/doc/COPYING.LESSER +165 -0
  11. data/doc/DEPLOYMENT.md +824 -0
  12. data/doc/LICENSE.md +14 -0
  13. data/doc/PLUGINS.md +1875 -0
  14. data/doc/PLUGIN_DEVELOPMENT.md +86 -0
  15. data/doc/POLICY.md +857 -0
  16. data/doc/QUICKSTART.md +256 -0
  17. data/doc/RELEASING.md +381 -0
  18. data/doc/REQUIREMENTS.md +526 -0
  19. data/doc/VERSIONS +208 -0
  20. data/lib/automatic/cli.rb +248 -0
  21. data/lib/automatic/environment.rb +31 -5
  22. data/lib/automatic/feed_maker.rb +10 -9
  23. data/lib/automatic/feed_parser.rb +51 -35
  24. data/lib/automatic/http.rb +107 -0
  25. data/lib/automatic/log.rb +49 -18
  26. data/lib/automatic/opml.rb +3 -1
  27. data/lib/automatic/pipeline.rb +63 -32
  28. data/lib/automatic/recipe.rb +56 -17
  29. data/lib/automatic/version.rb +14 -1
  30. data/lib/automatic.rb +78 -20
  31. data/plugins/custom_feed/svn_log.rb +73 -32
  32. data/plugins/custom_feed/web.rb +348 -0
  33. data/plugins/filter/absolute_uri.rb +43 -27
  34. data/plugins/filter/accept.rb +38 -45
  35. data/plugins/filter/claude.rb +217 -0
  36. data/plugins/filter/clear.rb +12 -8
  37. data/plugins/filter/description_link.rb +49 -51
  38. data/plugins/filter/full_feed.rb +158 -52
  39. data/plugins/filter/gemini.rb +216 -0
  40. data/plugins/filter/github_feed.rb +38 -26
  41. data/plugins/filter/ignore.rb +33 -44
  42. data/plugins/filter/image.rb +36 -25
  43. data/plugins/filter/image_source.rb +58 -52
  44. data/plugins/filter/join.rb +107 -0
  45. data/plugins/filter/one.rb +19 -26
  46. data/plugins/filter/open_ai.rb +198 -0
  47. data/plugins/filter/rand.rb +16 -17
  48. data/plugins/filter/sakura_ai.rb +205 -0
  49. data/plugins/filter/sanitize.rb +29 -34
  50. data/plugins/filter/sort.rb +20 -27
  51. data/plugins/filter/tumblr_resize.rb +31 -23
  52. data/plugins/notify/ikachan.rb +86 -48
  53. data/plugins/provide/fluentd.rb +43 -24
  54. data/plugins/publish/amazon_s3.rb +73 -40
  55. data/plugins/publish/console.rb +19 -16
  56. data/plugins/publish/console_link.rb +20 -17
  57. data/plugins/publish/eject.rb +48 -26
  58. data/plugins/publish/fluentd.rb +50 -30
  59. data/plugins/publish/hatena_bookmark.rb +88 -71
  60. data/plugins/publish/instapaper.rb +69 -59
  61. data/plugins/publish/markdown.rb +278 -0
  62. data/plugins/publish/memcached.rb +35 -29
  63. data/plugins/store/database.rb +50 -48
  64. data/plugins/store/digest.rb +212 -0
  65. data/plugins/store/file.rb +99 -68
  66. data/plugins/store/full_text.rb +32 -25
  67. data/plugins/store/permalink.rb +18 -22
  68. data/plugins/subscription/feed.rb +34 -21
  69. data/plugins/subscription/link.rb +31 -32
  70. data/plugins/subscription/text.rb +32 -46
  71. data/plugins/subscription/tumblr.rb +55 -44
  72. data/plugins/subscription/xml.rb +40 -36
  73. metadata +108 -321
  74. data/Gemfile +0 -38
  75. data/Rakefile +0 -59
  76. data/doc/ChangeLog +0 -303
  77. data/doc/PLUGINS +0 -750
  78. data/doc/PLUGINS.ja +0 -753
  79. data/doc/README +0 -511
  80. data/doc/README.ja +0 -519
  81. data/plugins/filter/google_news.rb +0 -50
  82. data/plugins/publish/google_calendar.rb +0 -84
  83. data/plugins/publish/hipchat.rb +0 -46
  84. data/plugins/publish/pocket.rb +0 -45
  85. data/plugins/publish/twitter.rb +0 -58
  86. data/plugins/subscription/chan_toru.rb +0 -57
  87. data/plugins/subscription/g_guide.rb +0 -57
  88. data/plugins/subscription/pocket.rb +0 -51
  89. data/plugins/subscription/twitter.rb +0 -69
  90. data/plugins/subscription/twitter_search.rb +0 -50
  91. data/plugins/subscription/weather.rb +0 -33
  92. data/script/build +0 -84
  93. data/spec/fixtures/sampleFeeds.tsv +0 -1
  94. data/spec/fixtures/sampleFeeds2.tsv +0 -2
  95. data/spec/fixtures/sampleRecipe.yml +0 -24
  96. data/spec/lib/automatic/log_spec.rb +0 -32
  97. data/spec/lib/automatic/pipeline_spec.rb +0 -68
  98. data/spec/lib/automatic/recipe_spec.rb +0 -40
  99. data/spec/lib/automatic_spec.rb +0 -99
  100. data/spec/plugins/custom_feed/svn_log_spec.rb +0 -31
  101. data/spec/plugins/filter/absolute_uri_spec.rb +0 -61
  102. data/spec/plugins/filter/accept_spec.rb +0 -331
  103. data/spec/plugins/filter/clear_spec.rb +0 -49
  104. data/spec/plugins/filter/description_link_spec.rb +0 -138
  105. data/spec/plugins/filter/full_feed_spec.rb +0 -129
  106. data/spec/plugins/filter/github_feed_spec.rb +0 -55
  107. data/spec/plugins/filter/google_news_spec.rb +0 -69
  108. data/spec/plugins/filter/ignore_spec.rb +0 -328
  109. data/spec/plugins/filter/image_source_spec.rb +0 -89
  110. data/spec/plugins/filter/image_spec.rb +0 -65
  111. data/spec/plugins/filter/one_spec.rb +0 -71
  112. data/spec/plugins/filter/rand_spec.rb +0 -52
  113. data/spec/plugins/filter/sanitize_spec.rb +0 -153
  114. data/spec/plugins/filter/sort_spec.rb +0 -189
  115. data/spec/plugins/filter/tumblr_resize_spec.rb +0 -109
  116. data/spec/plugins/notify/ikachan_spec.rb +0 -58
  117. data/spec/plugins/provide/fluentd_spec.rb +0 -49
  118. data/spec/plugins/publish/amazon_s3_spec.rb +0 -40
  119. data/spec/plugins/publish/console_spec.rb +0 -30
  120. data/spec/plugins/publish/eject_spec.rb +0 -40
  121. data/spec/plugins/publish/fluentd_spec.rb +0 -40
  122. data/spec/plugins/publish/google_calendar_spec.rb +0 -83
  123. data/spec/plugins/publish/hatena_bookmark_spec.rb +0 -134
  124. data/spec/plugins/publish/hipchat_spec.rb +0 -69
  125. data/spec/plugins/publish/instapaper_spec.rb +0 -82
  126. data/spec/plugins/publish/memcached_spec.rb +0 -63
  127. data/spec/plugins/publish/pocket_spec.rb +0 -51
  128. data/spec/plugins/publish/twitter_spec.rb +0 -73
  129. data/spec/plugins/store/file_spec.rb +0 -58
  130. data/spec/plugins/store/full_text_spec.rb +0 -152
  131. data/spec/plugins/store/permalink_spec.rb +0 -206
  132. data/spec/plugins/subscription/chan_toru_spec.rb +0 -56
  133. data/spec/plugins/subscription/feed_spec.rb +0 -71
  134. data/spec/plugins/subscription/g_guide_spec.rb +0 -82
  135. data/spec/plugins/subscription/link_spec.rb +0 -72
  136. data/spec/plugins/subscription/pocket_spec.rb +0 -57
  137. data/spec/plugins/subscription/text_spec.rb +0 -84
  138. data/spec/plugins/subscription/tumblr_spec.rb +0 -74
  139. data/spec/plugins/subscription/twitter_search_spec.rb +0 -57
  140. data/spec/plugins/subscription/twitter_spec.rb +0 -73
  141. data/spec/plugins/subscription/weather_spec.rb +0 -44
  142. data/spec/plugins/subscription/xml_spec.rb +0 -84
  143. data/spec/spec_helper.rb +0 -106
  144. data/spec/user_dir/plugins/store/mock.rb +0 -16
  145. data/test/fixtures/sampleOPML.xml +0 -11
  146. data/test/integration/test_absoluteurl.yml +0 -25
  147. data/test/integration/test_activerecord.yml +0 -24
  148. data/test/integration/test_add_pocket.yml +0 -26
  149. data/test/integration/test_chan_toru.yml +0 -21
  150. data/test/integration/test_descriptionlink.yml +0 -21
  151. data/test/integration/test_fluentd.yml +0 -22
  152. data/test/integration/test_fulltext.yml +0 -30
  153. data/test/integration/test_google_news.yml +0 -21
  154. data/test/integration/test_googlealert.yml +0 -21
  155. data/test/integration/test_hatenabookmark.yml +0 -30
  156. data/test/integration/test_ignore.yml +0 -25
  157. data/test/integration/test_ignore2.yml +0 -22
  158. data/test/integration/test_image2local.yml +0 -33
  159. data/test/integration/test_instapaper.yml +0 -26
  160. data/test/integration/test_link2local.yml +0 -34
  161. data/test/integration/test_one.yml +0 -23
  162. data/test/integration/test_pocket.yml +0 -22
  163. data/test/integration/test_rand.yml +0 -21
  164. data/test/integration/test_sanitize.yml +0 -23
  165. data/test/integration/test_sort.yml +0 -36
  166. data/test/integration/test_svnlog.yml +0 -15
  167. data/test/integration/test_text2feed.yml +0 -36
  168. data/test/integration/test_tumblr2local.yml +0 -43
  169. data/test/integration/test_twitter_search.yml +0 -22
  170. data/test/integration/test_weather.yml +0 -19
  171. data/test/integration/test_xml2fluentd.yml +0 -21
  172. data/vendor/.gitkeep +0 -0
data/Rakefile DELETED
@@ -1,59 +0,0 @@
1
- # -*- mode: ruby; coding: utf-8 -*-
2
-
3
- require 'rubygems'
4
-
5
- require 'rspec/core'
6
- require 'rspec/core/rake_task'
7
- RSpec::Core::RakeTask.new(:spec) do |spec|
8
- spec.rspec_opts = ["-c"]
9
- spec.pattern = FileList['spec/**/*_spec.rb']
10
- end
11
-
12
- namespace :spec do
13
- desc "Run RSpec for plugins"
14
- RSpec::Core::RakeTask.new(:plugins) do |spec|
15
- spec.rspec_opts = ["-c"]
16
- spec.pattern = FileList['spec/plugins/**/*_spec.rb']
17
- end
18
-
19
- desc "Run RSpec for main procedure"
20
- RSpec::Core::RakeTask.new(:lib) do |spec|
21
- spec.rspec_opts = ["-c"]
22
- spec.pattern = FileList['spec/lib/**/*_spec.rb']
23
- end
24
- end
25
-
26
- task :default => :spec
27
-
28
- require 'jeweler'
29
- Jeweler::Tasks.new do |gem|
30
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
31
- gem.name = "automatic"
32
- gem.homepage = "http://github.com/automaticruby/automaticruby"
33
- gem.license = "GPL"
34
- gem.summary = %Q{Automatic Ruby}
35
- gem.description = %Q{Ruby framework for the general-purpose automatic processing}
36
- gem.email = "idnanashi@gmail.com"
37
- gem.authors = ["id774"]
38
- # dependencies defined in Gemfile
39
- end
40
-
41
- Jeweler::RubygemsDotOrgTasks.new
42
-
43
- if RUBY_VERSION >= '1.9.0'
44
- desc "Run RSpec code examples with simplecov"
45
- task :simplecov do
46
- ENV['COVERAGE'] = "on"
47
- Rake::Task[:spec].invoke
48
- end
49
- else
50
- desc "Run RSpec code examples with rcov"
51
- RSpec::Core::RakeTask.new(:rcov) do |spec|
52
- spec.pattern = FileList['spec/**/*_spec.rb']
53
- exclude_files = [
54
- "gems",
55
- ]
56
- spec.rcov_opts = ['--exclude', exclude_files.join(",")]
57
- spec.rcov = true
58
- end
59
- end
data/doc/ChangeLog DELETED
@@ -1,303 +0,0 @@
1
- === 14.12.0 / 2014-12-27
2
-
3
- * Rewrite obsolete methods.
4
-
5
- * Update Gemfile.
6
-
7
-
8
- === 14.10.0 / 2014-10-23
9
-
10
- * Using Logger
11
-
12
- * Improvement File Saving Plugin
13
-
14
- * Store::FullText will ignore duplicated titled entry.
15
-
16
- * Added new plugins.
17
-
18
- * Filter::Clear
19
- * Filter::GoogleNews
20
- * Filter::DescriptionLink
21
-
22
-
23
- === 14.5.0 / 2014-05-31
24
-
25
- * Update to activesupport/record 4.1.
26
-
27
-
28
- === 14.3.0 / 2014-03-23
29
-
30
- * Downgrade nokogiri version for OS X.
31
-
32
-
33
- === 14.2.0 / 2014-02-26
34
-
35
- * Added new plugins.
36
-
37
- * Publish::AmazonS3
38
-
39
- * Improvement File Saving Plugin
40
-
41
- * Store::TargetLink rename to Store::File.
42
- * Store::File rewrite link to file URI scheme.
43
- * Enable file URI scheme in RSS 2.0 Feed.
44
- * Store::File enable get file from Amazon S3.
45
-
46
- * Improvement Subscription::Text
47
-
48
- * Read text from TSV formatted files.
49
- * Add fields description, author, comments to RSS 2.0 Feed.
50
-
51
- * Into details Log messages.
52
-
53
- * Use 'double' instead of 'mock', 'stub' for rspec-mocks.
54
-
55
- * Improvement CI with network connection.
56
-
57
- * Refactoring to divide Feed::Parser to Feed::Maker.
58
-
59
-
60
- === 14.1.0 / 2014-01-24
61
-
62
- * Fix dependency conflict.
63
-
64
- * Refactoring error retry handling.
65
-
66
-
67
- === 13.12.0 / 2013-12-17
68
-
69
- * Fix twitter gem version.
70
-
71
-
72
- === 13.7.0 / 2013-07-28
73
-
74
- * Added new plugins.
75
-
76
- * Subscription::Xml
77
- * Provide::Fluentd
78
-
79
- * Fix some problems.
80
-
81
-
82
- === 13.6.0 / 2013-06-28
83
-
84
- * Added new plugins.
85
-
86
- * Subscription::Pocket
87
- * Subscription::TwitterSearch
88
- * Subscription::GGuide
89
- * Subscription::ChanToru
90
- * Filter::Accept
91
- * Filter::Sanitize
92
- * Filter::GithubFeed
93
- * Publish::ConsoleLink
94
- * Publish::Hipchat
95
- * Publish::Memcached
96
- * Publish::Fluentd
97
-
98
- * And other Improvements, bug fixes.
99
-
100
- * Correspond to activesupport & activerecord 4.0.
101
-
102
- * Mail plugins temporary removed (for actionmailer 4.0).
103
-
104
- * Ruby 1.8 support was outdated.
105
-
106
-
107
- === 13.5.0 / 2013-05-18
108
-
109
- * Added new plugins.
110
-
111
- * Subscription::Text
112
- * Subscription::Weather
113
- * Filter::One
114
- * Filter::Rand
115
- * Pulish::Twitter
116
- * Pulish::Pocket
117
-
118
- * Move repository from id774/automaticruby to automaticruby/automaticruby.
119
-
120
-
121
- === 13.4.1 / 2013-04-10
122
-
123
- * Command automatic-config merged into automatic.
124
-
125
- * Improvement retry functions.
126
-
127
- * Running tests on Ruby 2.0.
128
-
129
-
130
- === 13.2.0 / 2013-02-13
131
-
132
- * All subscription and download plugins implemented retry function.
133
-
134
- * Plugin Filter::Ignore has become item-based filter.
135
-
136
- * Plugin Filter::Reverse renamed to Filter::Sort.
137
-
138
- * Added new plugins.
139
-
140
- * Subscription::GoogleReaderStar
141
- * Filter::FullFeed
142
- * Publish::Instapaper
143
-
144
- * Improvement tests.
145
-
146
- * And other minor bug fix.
147
-
148
-
149
- === 13.1.0 / 2013-01-08
150
-
151
- * Fix interval bugs.
152
-
153
- * Improvement timing of logging (But still the way).
154
-
155
- * Only new feed return feeds.
156
-
157
- * Refactoring.
158
-
159
-
160
- === 12.10.0 / 2012-10-16
161
-
162
- * Added new plug-in.
163
-
164
- * Subscription::Tumblr
165
-
166
-
167
- === 12.9.1 / 2012-09-18
168
-
169
- * Bug fix
170
-
171
- * It should be considered the case of the feed link including nil.
172
-
173
-
174
- === 12.9.0 / 2012-09-18
175
-
176
- * The format of the pipeline were unified to "feed object" (array of feeds).
177
-
178
- * Some plug-ins have lost backward compatibility.
179
-
180
- * Added new plug-ins.
181
-
182
- * Subscription::Link
183
- * Subscription::Twitter
184
- * Filter::Image
185
- * Filter::AbsoluteURI
186
-
187
- * Removed obsolete plug-ins.
188
-
189
- * Subscription::URI
190
- * Extract::Link
191
- * Filter::ImageLink
192
- * Store::Link
193
- * Store::Target
194
-
195
-
196
- === 12.6.0 / 2012-06-18
197
-
198
- * Added plug-ins.
199
-
200
- * Subscription::URI
201
- * Extract::Link
202
- * Filter::ImageLink
203
- * Store::Link
204
- * Store::Target
205
-
206
- * Improvement automatic-config.
207
-
208
- * Scaffold makes config and db directory.
209
- * Unscaffold SubCommand added to automatic-config.
210
-
211
- * Improvement search path.
212
-
213
- * Search user_dir's config when order -c option with simple filename.
214
- * If user's db directory exist, use it.
215
-
216
- * Improvement log.
217
-
218
- * Show recipe and db name on log.
219
-
220
- * Refactoring.
221
-
222
- * Refactoring plug-in names.
223
- * Header fields.
224
-
225
- * Add tests.
226
-
227
- * RSpec code coverage over 99%.
228
- * Add all option script/build.
229
-
230
-
231
- === 12.4.0 / 2012-04-30
232
-
233
- * Inspect SubCommand added to automatic-config.
234
-
235
- * Added plug-ins.
236
-
237
- * Filter::Reverse
238
- * Publish::SMTP
239
- * Publish::Mail
240
-
241
- * Running all Integration Tests with CI.
242
-
243
-
244
- === 12.3.1 / 2012-03-16
245
-
246
- * English Documents.
247
-
248
- * doc/README
249
- * doc/PLUGINS
250
-
251
- * The user who installed the gem package be able to create own plugins.
252
-
253
- * ~/.automatic/plugins
254
-
255
- * Utils merged to automatic-config command and added following subcommand.
256
-
257
- * scaffold
258
- * autodiscovery
259
- * opmlparser
260
- * feedparser
261
- * log
262
-
263
- * Added Integration Test Script for CI.
264
-
265
- * script/build
266
-
267
-
268
- === 12.03 / 2012-03-07
269
-
270
- * Distribute as a gem library.
271
-
272
- * Plugins added.
273
-
274
- * CustomFeed::SVNLog
275
- * Notify::Ikachan
276
- * Filter::TumblrResize
277
- * Filter::Image
278
- * Store::TargetLink
279
-
280
- * CI / Build scripts.
281
-
282
- * script/bootstrap
283
-
284
- * Signficant Refactoring.
285
-
286
-
287
- === 12.02.1 / 2012-02-25
288
-
289
- * Point release.
290
-
291
- * Big Refactoring for core.
292
- * Reorganization of the namespace.
293
- * A few plugins added.
294
-
295
-
296
- === 12.02 / 2012-02-18
297
-
298
- * First release.
299
-
300
- * Scratch of this script.
301
- * Plugin existing only for hatenabookmark.
302
-
303
-