automatic 12.6.0 → 12.9.1
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.
- data/VERSION +1 -1
- data/automatic.gemspec +10 -22
- data/bin/automatic-config +4 -4
- data/doc/ChangeLog +30 -1
- data/doc/PLUGINS +46 -178
- data/doc/PLUGINS.ja +46 -177
- data/doc/README +2 -10
- data/doc/README.ja +2 -9
- data/lib/automatic.rb +2 -3
- data/plugins/custom_feed/svn_log.rb +0 -1
- data/plugins/filter/absolute_uri.rb +39 -0
- data/plugins/filter/image.rb +46 -0
- data/plugins/filter/reverse.rb +0 -1
- data/plugins/store/database.rb +8 -23
- data/plugins/store/full_text.rb +4 -4
- data/plugins/store/permalink.rb +12 -9
- data/plugins/store/target_link.rb +3 -2
- data/plugins/subscription/link.rb +55 -0
- data/plugins/subscription/twitter.rb +57 -0
- data/script/build +1 -1
- data/spec/lib/automatic_spec.rb +3 -2
- data/spec/plugins/custom_feed/svn_log_spec.rb +1 -1
- data/spec/plugins/filter/absolute_uri_spec.rb +61 -0
- data/spec/plugins/filter/image_source_spec.rb +1 -1
- data/spec/plugins/filter/image_spec.rb +65 -0
- data/spec/plugins/publish/google_calendar_spec.rb +1 -1
- data/spec/plugins/store/full_text_spec.rb +0 -1
- data/spec/plugins/store/permalink_spec.rb +52 -3
- data/spec/plugins/store/target_link_spec.rb +1 -2
- data/spec/plugins/subscription/feed_spec.rb +0 -1
- data/spec/plugins/subscription/{uri_spec.rb → link_spec.rb} +9 -10
- data/spec/plugins/subscription/twitter_spec.rb +42 -0
- data/spec/spec_helper.rb +12 -26
- data/spec/user_dir/plugins/store/mock.rb +1 -1
- data/test/integration/test_get_image.yml +4 -6
- data/test/integration/test_image2local.yml +1 -1
- metadata +10 -22
- data/config/html2console.yml +0 -16
- data/plugins/extract/link.rb +0 -32
- data/plugins/filter/image_link.rb +0 -37
- data/plugins/publish/dump.rb +0 -24
- data/plugins/store/link.rb +0 -47
- data/plugins/store/target.rb +0 -41
- data/plugins/subscription/uri.rb +0 -31
- data/spec/fixtures/extractLink.html +0 -14
- data/spec/fixtures/filterImageLink.html +0 -34
- data/spec/fixtures/publishDump.html +0 -14
- data/spec/fixtures/storeLink.html +0 -34
- data/spec/fixtures/storeLink2.html +0 -36
- data/spec/fixtures/storeTarget.html +0 -11
- data/spec/fixtures/storeTarget2.html +0 -11
- data/spec/plugins/extract/link_spec.rb +0 -38
- data/spec/plugins/filter/image_link_spec.rb +0 -51
- data/spec/plugins/publish/dump_spec.rb +0 -32
- data/spec/plugins/store/link_spec.rb +0 -47
- data/spec/plugins/store/target_spec.rb +0 -41
data/config/html2console.yml
DELETED
data/plugins/extract/link.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Name:: Automatic::Plugin::Extract::Link
|
3
|
-
# Author:: 774 <http://id774.net>
|
4
|
-
# Created:: May 24, 2012
|
5
|
-
# Updated:: Jun 13, 2012
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
7
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
-
|
9
|
-
module Automatic::Plugin
|
10
|
-
class ExtractLink
|
11
|
-
require 'nokogiri'
|
12
|
-
|
13
|
-
def initialize(config, pipeline=[])
|
14
|
-
@config = config
|
15
|
-
@pipeline = pipeline
|
16
|
-
end
|
17
|
-
|
18
|
-
def run
|
19
|
-
@return_html = []
|
20
|
-
@pipeline.each {|html|
|
21
|
-
img_url = ""
|
22
|
-
unless html.nil?
|
23
|
-
doc = Nokogiri::HTML(html)
|
24
|
-
(doc/:a).each {|link|
|
25
|
-
@return_html << link[:href]
|
26
|
-
}
|
27
|
-
end
|
28
|
-
}
|
29
|
-
@return_html
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Name:: Automatic::Plugin::Filter::ImageLink
|
3
|
-
# Author:: 774 <http://id774.net>
|
4
|
-
# Created:: May 24, 2012
|
5
|
-
# Updated:: Jun 13, 2012
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
7
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
-
|
9
|
-
module Automatic::Plugin
|
10
|
-
class FilterImageLink
|
11
|
-
def initialize(config, pipeline=[])
|
12
|
-
@config = config
|
13
|
-
@pipeline = pipeline
|
14
|
-
end
|
15
|
-
|
16
|
-
def run
|
17
|
-
@return_html = []
|
18
|
-
@pipeline.each {|html|
|
19
|
-
unless html.nil?
|
20
|
-
html.scan(/(.*?\.jp.*g$)/i) { |matched|
|
21
|
-
@return_html << matched.join(" ")
|
22
|
-
}
|
23
|
-
html.scan(/(.*?\.png$)/i) { |matched|
|
24
|
-
@return_html << matched.join(" ")
|
25
|
-
}
|
26
|
-
html.scan(/(.*?\.gif$)/i) { |matched|
|
27
|
-
@return_html << matched.join(" ")
|
28
|
-
}
|
29
|
-
html.scan(/(.*?\.tiff$)/i) { |matched|
|
30
|
-
@return_html << matched.join(" ")
|
31
|
-
}
|
32
|
-
end
|
33
|
-
}
|
34
|
-
@return_html
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/plugins/publish/dump.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Name:: Automatic::Plugin::Publish::Dump
|
3
|
-
# Author:: 774 <http://id774.net>
|
4
|
-
# Created:: Jun 13, 2012
|
5
|
-
# Updated:: Jun 13, 2012
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
7
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
-
|
9
|
-
module Automatic::Plugin
|
10
|
-
class PublishDump
|
11
|
-
require 'pp'
|
12
|
-
|
13
|
-
def initialize(config, pipeline=[])
|
14
|
-
@config = config
|
15
|
-
@pipeline = pipeline
|
16
|
-
@output = STDOUT
|
17
|
-
end
|
18
|
-
|
19
|
-
def run
|
20
|
-
pp(@pipeline, out=@output)
|
21
|
-
@pipeline
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/plugins/store/link.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Name:: Automatic::Plugin::Store::Link
|
3
|
-
# Author:: 774 <http://id774.net>
|
4
|
-
# Created:: May 24, 2012
|
5
|
-
# Updated:: Jun 14, 2012
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
7
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
-
|
9
|
-
require 'plugins/store/database'
|
10
|
-
|
11
|
-
module Automatic::Plugin
|
12
|
-
class Link < ActiveRecord::Base
|
13
|
-
end
|
14
|
-
|
15
|
-
class StoreLink
|
16
|
-
include Automatic::Plugin::Database
|
17
|
-
|
18
|
-
def initialize(config, pipeline=[])
|
19
|
-
@config = config
|
20
|
-
@pipeline = pipeline
|
21
|
-
end
|
22
|
-
|
23
|
-
def column_definition
|
24
|
-
return {
|
25
|
-
:url => :string,
|
26
|
-
:created_at => :string
|
27
|
-
}
|
28
|
-
end
|
29
|
-
|
30
|
-
def unique_key
|
31
|
-
return :url
|
32
|
-
end
|
33
|
-
|
34
|
-
def model_class
|
35
|
-
return Automatic::Plugin::Link
|
36
|
-
end
|
37
|
-
|
38
|
-
def run
|
39
|
-
return for_each_new_link { |link|
|
40
|
-
Link.create(
|
41
|
-
:url => link,
|
42
|
-
:created_at => Time.now.strftime("%Y/%m/%d %X"))
|
43
|
-
Automatic::Log.puts("info", "Saving: #{link}")
|
44
|
-
}
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
data/plugins/store/target.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# Name:: Automatic::Plugin::Store::Target
|
4
|
-
# Author:: 774 <http://id774.net>
|
5
|
-
# Created:: May 24, 2012
|
6
|
-
# Updated:: May 28, 2012
|
7
|
-
# Copyright:: 774 Copyright (c) 2012
|
8
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
9
|
-
|
10
|
-
module Automatic::Plugin
|
11
|
-
class StoreTarget
|
12
|
-
def initialize(config, pipeline=[])
|
13
|
-
@config = config
|
14
|
-
@pipeline = pipeline
|
15
|
-
end
|
16
|
-
|
17
|
-
def wget(url)
|
18
|
-
filename = url.split(/\//).last
|
19
|
-
open(url) { |source|
|
20
|
-
open(File.join(@config['path'], filename), "w+b") { |o|
|
21
|
-
o.print source.read
|
22
|
-
}
|
23
|
-
}
|
24
|
-
end
|
25
|
-
|
26
|
-
def run
|
27
|
-
@pipeline.each {|html|
|
28
|
-
begin
|
29
|
-
unless html.nil?
|
30
|
-
Automatic::Log.puts("info", "Get: #{html}")
|
31
|
-
wget(html)
|
32
|
-
end
|
33
|
-
rescue
|
34
|
-
Automatic::Log.puts("error", "Error found during file download.")
|
35
|
-
end
|
36
|
-
sleep @config['interval'].to_i
|
37
|
-
}
|
38
|
-
@pipeline
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
data/plugins/subscription/uri.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Name:: Automatic::Plugin::Subscription::URI
|
3
|
-
# Author:: 774 <http://id774.net>
|
4
|
-
# Created:: May 24, 2012
|
5
|
-
# Updated:: Jun 13, 2012
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
7
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
-
|
9
|
-
module Automatic::Plugin
|
10
|
-
class SubscriptionURI
|
11
|
-
require 'open-uri'
|
12
|
-
|
13
|
-
def initialize(config, pipeline=[])
|
14
|
-
@config = config
|
15
|
-
@pipeline = pipeline
|
16
|
-
end
|
17
|
-
|
18
|
-
def run
|
19
|
-
@config['urls'].each {|url|
|
20
|
-
begin
|
21
|
-
Automatic::Log.puts("info", "Parsing: #{url}")
|
22
|
-
doc = open(url).read
|
23
|
-
@pipeline << doc
|
24
|
-
rescue
|
25
|
-
Automatic::Log.puts("error", "Fault in parsing: #{url}")
|
26
|
-
end
|
27
|
-
}
|
28
|
-
return @pipeline
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="ja">
|
3
|
-
<head>
|
4
|
-
<title>Sample</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<p>A simple <b>test</b> string.</p>
|
8
|
-
<a href="http://id774.net">id774.net</a>
|
9
|
-
<a href="http://reblog.id774.net">reblog.id774.net</a>
|
10
|
-
<a href="http://oh-news.net/live/wp-content/uploads/2011/04/Eila_omote.jpg">
|
11
|
-
<img src="http://24.media.tumblr.com/tumblr_m5gneyJmsH1qza5ppo1_500.jpg" alt="" /></a>
|
12
|
-
<a href="http://blog.id774.net/post/">blog.id774.net</a>
|
13
|
-
</body>
|
14
|
-
</html>
|
@@ -1,34 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="ja">
|
3
|
-
<head>
|
4
|
-
<title>Sample</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<p>A simple <b>test</b> string.</p>
|
8
|
-
<a href="http://id774.net">id774.net</a>
|
9
|
-
<a href="http://reblog.id774.net">reblog.id774.net</a>
|
10
|
-
<a href="http://link_1.jpg">
|
11
|
-
<img src="http://imgsrc_1.jpg" alt="" /></a>
|
12
|
-
<a href="http://link_2.jpg">
|
13
|
-
<img src="http://imgsrc_2.jpg" alt="" /></a>
|
14
|
-
<a href="http://link_3.JPG">
|
15
|
-
<img src="http://imgsrc_3.JPG" alt="" /></a>
|
16
|
-
<a href="http://link_4.png">
|
17
|
-
<img src="http://imgsrc_4.png" alt="" /></a>
|
18
|
-
<a href="http://link_5.jpeg">
|
19
|
-
<img src="http://imgsrc_5.jpeg" alt="" /></a>
|
20
|
-
<a href="http://link_6.PNG">
|
21
|
-
<img src="http://imgsrc_6.PNG" alt="" /></a>
|
22
|
-
<a href="http://link_7.jpega">
|
23
|
-
<img src="http://imgsrc_7.jpega" alt="" /></a>
|
24
|
-
<a href="http://link_8.gif">
|
25
|
-
<img src="http://imgsrc_8.gif" alt="" /></a>
|
26
|
-
<a href="http://link_9.GIF">
|
27
|
-
<img src="http://imgsrc_9.GIF" alt="" /></a>
|
28
|
-
<a href="http://link_10.tiff">
|
29
|
-
<img src="http://imgsrc_10.tiff" alt="" /></a>
|
30
|
-
<a href="http://link_11.TIFF">
|
31
|
-
<img src="http://imgsrc_11.TIFF" alt="" /></a>
|
32
|
-
<a href="http://blog.id774.net/post/">blog.id774.net</a>
|
33
|
-
</body>
|
34
|
-
</html>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="ja">
|
3
|
-
<head>
|
4
|
-
<title>Sample</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<p>A simple <b>test</b> string.</p>
|
8
|
-
<a href="http://id774.net">id774.net</a>
|
9
|
-
<a href="http://reblog.id774.net">reblog.id774.net</a>
|
10
|
-
<a href="http://oh-news.net/live/wp-content/uploads/2011/04/Eila_omote.jpg">
|
11
|
-
<img src="http://24.media.tumblr.com/tumblr_m5gneyJmsH1qza5ppo1_500.jpg" alt="" /></a>
|
12
|
-
<a href="http://blog.id774.net/post/">blog.id774.net</a>
|
13
|
-
</body>
|
14
|
-
</html>
|
@@ -1,34 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="ja">
|
3
|
-
<head>
|
4
|
-
<title>Sample</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<p>A simple <b>test</b> string.</p>
|
8
|
-
<a href="http://id774.net">id774.net</a>
|
9
|
-
<a href="http://reblog.id774.net">reblog.id774.net</a>
|
10
|
-
<a href="http://link_1.jpg">
|
11
|
-
<img src="http://imgsrc_1.jpg" alt="" /></a>
|
12
|
-
<a href="http://link_2.jpg">
|
13
|
-
<img src="http://imgsrc_2.jpg" alt="" /></a>
|
14
|
-
<a href="http://link_3.JPG">
|
15
|
-
<img src="http://imgsrc_3.JPG" alt="" /></a>
|
16
|
-
<a href="http://link_4.png">
|
17
|
-
<img src="http://imgsrc_4.png" alt="" /></a>
|
18
|
-
<a href="http://link_5.jpeg">
|
19
|
-
<img src="http://imgsrc_5.jpeg" alt="" /></a>
|
20
|
-
<a href="http://link_6.PNG">
|
21
|
-
<img src="http://imgsrc_6.PNG" alt="" /></a>
|
22
|
-
<a href="http://link_7.jpega">
|
23
|
-
<img src="http://imgsrc_7.jpega" alt="" /></a>
|
24
|
-
<a href="http://link_8.gif">
|
25
|
-
<img src="http://imgsrc_8.gif" alt="" /></a>
|
26
|
-
<a href="http://link_9.GIF">
|
27
|
-
<img src="http://imgsrc_9.GIF" alt="" /></a>
|
28
|
-
<a href="http://link_10.tiff">
|
29
|
-
<img src="http://imgsrc_10.tiff" alt="" /></a>
|
30
|
-
<a href="http://link_11.TIFF">
|
31
|
-
<img src="http://imgsrc_11.TIFF" alt="" /></a>
|
32
|
-
<a href="http://blog.id774.net/post/">blog.id774.net</a>
|
33
|
-
</body>
|
34
|
-
</html>
|
@@ -1,36 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="ja">
|
3
|
-
<head>
|
4
|
-
<title>Sample</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<p>A simple <b>test</b> string.</p>
|
8
|
-
<a href="http://id774.net">id774.net</a>
|
9
|
-
<a href="http://reblog.id774.net">reblog.id774.net</a>
|
10
|
-
<a href="http://link_1.jpg">
|
11
|
-
<img src="http://imgsrc_1.jpg" alt="" /></a>
|
12
|
-
<a href="http://link_2.jpg">
|
13
|
-
<img src="http://imgsrc_2.jpg" alt="" /></a>
|
14
|
-
<a href="http://link_3.JPG">
|
15
|
-
<img src="http://imgsrc_3.JPG" alt="" /></a>
|
16
|
-
<a href="http://link_4.png">
|
17
|
-
<img src="http://imgsrc_4.png" alt="" /></a>
|
18
|
-
<a href="http://link_5.jpeg">
|
19
|
-
<img src="http://imgsrc_5.jpeg" alt="" /></a>
|
20
|
-
<a href="http://link_6.PNG">
|
21
|
-
<img src="http://imgsrc_6.PNG" alt="" /></a>
|
22
|
-
<a href="http://link_7.jpega">
|
23
|
-
<img src="http://imgsrc_7.jpega" alt="" /></a>
|
24
|
-
<a href="http://link_8.gif">
|
25
|
-
<img src="http://imgsrc_8.gif" alt="" /></a>
|
26
|
-
<a href="http://link_9.GIF">
|
27
|
-
<img src="http://imgsrc_9.GIF" alt="" /></a>
|
28
|
-
<a href="http://link_10.tiff">
|
29
|
-
<img src="http://imgsrc_10.tiff" alt="" /></a>
|
30
|
-
<a href="http://link_11.TIFF">
|
31
|
-
<img src="http://imgsrc_11.TIFF" alt="" /></a>
|
32
|
-
<a href="http://link_12.jpg">
|
33
|
-
<img src="http://imgsrc_12.jpg" alt="" /></a>
|
34
|
-
<a href="http://blog.id774.net/post/">blog.id774.net</a>
|
35
|
-
</body>
|
36
|
-
</html>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="ja">
|
3
|
-
<head>
|
4
|
-
<title>Sample</title>
|
5
|
-
</head>
|
6
|
-
<body>
|
7
|
-
<p>A simple <b>test</b> string.</p>
|
8
|
-
<a href="http://oh-news.net/live/wp-content/uploads/2011/04/Eila_omote.jpg">
|
9
|
-
<img src="http://24.media.tumblr.com/tumblr_m5gneyJmsH1qza5ppo1_500.jpg" alt="" /></a>
|
10
|
-
</body>
|
11
|
-
</html>
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Name:: Automatic::Plugin::Extract::Link
|
3
|
-
# Author:: 774 <http://id774.net>
|
4
|
-
# Created:: Jun 12, 2012
|
5
|
-
# Updated:: Jun 14, 2012
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
7
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
-
|
9
|
-
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
10
|
-
|
11
|
-
require 'extract/link'
|
12
|
-
|
13
|
-
describe Automatic::Plugin::ExtractLink do
|
14
|
-
context "with html contain link tag" do
|
15
|
-
subject {
|
16
|
-
Automatic::Plugin::ExtractLink.new({},
|
17
|
-
AutomaticSpec.generate_pipeline {
|
18
|
-
html "extractLink.html"
|
19
|
-
}
|
20
|
-
)}
|
21
|
-
|
22
|
-
describe "#run" do
|
23
|
-
its(:run) { should have(4).items }
|
24
|
-
specify {
|
25
|
-
subject.run
|
26
|
-
expect = "http://id774.net"
|
27
|
-
subject.instance_variable_get(:@return_html)[0].should == expect
|
28
|
-
expect = "http://reblog.id774.net"
|
29
|
-
subject.instance_variable_get(:@return_html)[1].should == expect
|
30
|
-
expect = "http://oh-news.net/live/wp-content/uploads/2011/04/Eila_omote.jpg"
|
31
|
-
subject.instance_variable_get(:@return_html)[2].should == expect
|
32
|
-
expect = "http://blog.id774.net/post/"
|
33
|
-
subject.instance_variable_get(:@return_html)[3].should == expect
|
34
|
-
}
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|