fluent-plugin-twitter 0.2.4 → 0.3.0

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/.travis.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
+ - 2.1.0
4
5
  - 2.0.0
5
6
  - 1.9.3
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in fluent-plugin-twitter.gemspec
4
4
  gemspec
5
- gem "twitter"
data/README.md CHANGED
@@ -4,6 +4,18 @@ fluent-plugin-twitter [![Build Status](https://travis-ci.org/y-ken/fluent-plugin
4
4
  ## Component
5
5
  Fluentd Input/Output plugin to process tweets with Twitter Streaming API.
6
6
 
7
+ ## Dependency
8
+
9
+ before use, install dependent library as:
10
+
11
+ ```bash
12
+ # for RHEL/CentOS
13
+ $ sudo yum install openssl-devel
14
+
15
+ # for Ubuntu/Debian
16
+ $ sudo apt-get install libssl-dev
17
+ ```
18
+
7
19
  ## Installation
8
20
 
9
21
  ### native gem
@@ -57,8 +69,8 @@ $ tail -f /var/log/td-agent/td-agent.log
57
69
  type twitter
58
70
  consumer_key YOUR_CONSUMER_KEY
59
71
  consumer_secret YOUR_CONSUMER_SECRET
60
- oauth_token YOUR_OAUTH_TOKEN
61
- oauth_token_secret YOUR_OAUTH_TOKEN_SECRET
72
+ access_token YOUR_OAUTH_TOKEN
73
+ access_token_secret YOUR_OAUTH_TOKEN_SECRET
62
74
  </match>
63
75
  `````
64
76
 
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "fluent-plugin-twitter"
6
- s.version = "0.2.4"
6
+ s.version = "0.3.0"
7
7
  s.authors = ["Kentaro Yoshida"]
8
8
  s.email = ["y.ken.studio@gmail.com"]
9
9
  s.homepage = "https://github.com/y-ken/fluent-plugin-twitter"
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
16
16
 
17
17
  # specify any dependencies here; for example:
18
18
  s.add_development_dependency "rake"
19
- s.add_runtime_dependency "fluentd"
20
- s.add_runtime_dependency "em-twitter", ["= 0.2.2"]
21
- s.add_runtime_dependency "twitter", ["= 4.8.1"]
22
- s.add_runtime_dependency "tweetstream", ["= 2.5.0"]
19
+ s.add_runtime_dependency "fluentd", [">= 0.10.46"]
20
+ s.add_runtime_dependency "em-twitter"
21
+ s.add_runtime_dependency "twitter"
22
+ s.add_runtime_dependency "tweetstream"
23
23
  end
@@ -31,6 +31,8 @@ module Fluent
31
31
  raise Fluent::ConfigError, "output_format value undefined #{@output_format}"
32
32
  end
33
33
 
34
+ @keyword = @keyword.gsub('${hashtag}', '#') unless @keyword.nil?
35
+
34
36
  TweetStream.configure do |config|
35
37
  config.consumer_key = @consumer_key
36
38
  config.consumer_secret = @consumer_secret
@@ -3,8 +3,10 @@ class Fluent::TwitterOutput < Fluent::Output
3
3
 
4
4
  config_param :consumer_key, :string
5
5
  config_param :consumer_secret, :string
6
- config_param :oauth_token, :string
7
- config_param :oauth_token_secret, :string
6
+ config_param :oauth_token, :string, :default => nil
7
+ config_param :oauth_token_secret, :string, :default => nil
8
+ config_param :access_token, :string, :default => nil
9
+ config_param :access_token_secret, :string, :default => nil
8
10
 
9
11
  def initialize
10
12
  super
@@ -14,11 +16,17 @@ class Fluent::TwitterOutput < Fluent::Output
14
16
  def configure(conf)
15
17
  super
16
18
 
19
+ @access_token = @access_token || @oauth_token
20
+ @access_token_secret = @access_token_secret || @oauth_token_secret
21
+ if !@consumer_key or !@consumer_secret or !@access_token or !@access_token_secret
22
+ raise Fluent::ConfigError, "missing values in consumer_key or consumer_secret or oauth_token or oauth_token_secret"
23
+ end
24
+
17
25
  @twitter = Twitter::Client.new(
18
- :consumer_key => conf['consumer_key'],
19
- :consumer_secret => conf['consumer_secret'],
20
- :oauth_token => conf['oauth_token'],
21
- :oauth_token_secret => conf['oauth_token_secret']
26
+ :consumer_key => @consumer_key,
27
+ :consumer_secret => @consumer_secret,
28
+ :access_token => @access_token,
29
+ :access_token_secret => @access_token_secret
22
30
  )
23
31
  end
24
32
 
@@ -29,12 +29,13 @@ class TwitterInputTest < Test::Unit::TestCase
29
29
  oauth_token_secret OAUTH_TOKEN_SECRET
30
30
  tag input.twitter
31
31
  timeline sampling
32
+ keyword ${hashtag}ruby lang:ja "happy hour" :)
32
33
  ]
33
- d.instance.inspect
34
34
  assert_equal 'CONSUMER_KEY', d.instance.consumer_key
35
35
  assert_equal 'CONSUMER_SECRET', d.instance.consumer_secret
36
36
  assert_equal 'OAUTH_TOKEN', d.instance.oauth_token
37
37
  assert_equal 'OAUTH_TOKEN_SECRET', d.instance.oauth_token_secret
38
+ assert_equal '#ruby lang:ja "happy hour" :)', d.instance.keyword
38
39
  end
39
40
  end
40
41
 
@@ -8,8 +8,8 @@ class TwitterOutputTest < Test::Unit::TestCase
8
8
  CONFIG = %[
9
9
  consumer_key CONSUMER_KEY
10
10
  consumer_secret CONSUMER_SECRET
11
- oauth_token OAUTH_TOKEN
12
- oauth_token_secret OAUTH_TOKEN_SECRET
11
+ access_token ACCESS_TOKEN
12
+ access_token_secret ACCESS_TOKEN_SECRET
13
13
  ]
14
14
 
15
15
  def create_driver(conf=CONFIG,tag='test')
@@ -23,24 +23,26 @@ class TwitterOutputTest < Test::Unit::TestCase
23
23
  d = create_driver %[
24
24
  consumer_key CONSUMER_KEY
25
25
  consumer_secret CONSUMER_SECRET
26
- oauth_token OAUTH_TOKEN
27
- oauth_token_secret OAUTH_TOKEN_SECRET
26
+ access_token ACCESS_TOKEN
27
+ access_token_secret ACCESS_TOKEN_SECRET
28
28
  ]
29
- d.instance.inspect
30
29
  assert_equal 'CONSUMER_KEY', d.instance.consumer_key
31
30
  assert_equal 'CONSUMER_SECRET', d.instance.consumer_secret
32
- assert_equal 'OAUTH_TOKEN', d.instance.oauth_token
33
- assert_equal 'OAUTH_TOKEN_SECRET', d.instance.oauth_token_secret
31
+ assert_equal 'ACCESS_TOKEN', d.instance.access_token
32
+ assert_equal 'ACCESS_TOKEN_SECRET', d.instance.access_token_secret
34
33
  end
35
34
 
36
- def test_emit
37
- d1 = create_driver(CONFIG, 'input.access')
38
- time = Time.parse("2012-01-02 13:14:15").to_i
39
- d1.run do
40
- d1.emit({'message' => 'sample message'})
41
- end
42
- emits = d1.emits
43
- assert_equal 0, emits.length
35
+ def test_configure_compatible
36
+ d = create_driver %[
37
+ consumer_key CONSUMER_KEY
38
+ consumer_secret CONSUMER_SECRET
39
+ oauth_token ACCESS_TOKEN
40
+ oauth_token_secret ACCESS_TOKEN_SECRET
41
+ ]
42
+ assert_equal 'CONSUMER_KEY', d.instance.consumer_key
43
+ assert_equal 'CONSUMER_SECRET', d.instance.consumer_secret
44
+ assert_equal 'ACCESS_TOKEN', d.instance.access_token
45
+ assert_equal 'ACCESS_TOKEN_SECRET', d.instance.access_token_secret
44
46
  end
45
47
  end
46
48
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-twitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-03 00:00:00.000000000 Z
12
+ date: 2014-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: 0.10.46
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,55 +42,55 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: 0.10.46
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: em-twitter
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - '='
51
+ - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: 0.2.2
53
+ version: '0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - '='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: 0.2.2
61
+ version: '0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: twitter
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
- - - '='
67
+ - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
- version: 4.8.1
69
+ version: '0'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - '='
75
+ - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
- version: 4.8.1
77
+ version: '0'
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: tweetstream
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - '='
83
+ - - ! '>='
84
84
  - !ruby/object:Gem::Version
85
- version: 2.5.0
85
+ version: '0'
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - '='
91
+ - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
- version: 2.5.0
93
+ version: '0'
94
94
  description:
95
95
  email:
96
96
  - y.ken.studio@gmail.com