omnibot 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,13 +19,12 @@ module OmniBot
19
19
  end
20
20
 
21
21
  def amqp_loop
22
- # setup amqp
23
- mq = AMQP::Channel.new
24
- exchange = mq.direct(Helpers::amqp_exchange_name)
25
- queue = mq.queue("omnibot-consumerqueue", :exclusive => true)
26
- queue.bind(exchange)
22
+ AMQP.start do |connection|
23
+ OmniLog::info "Setup amqp gem #{AMQP::VERSION}, AMQP protocol #{AMQP::Protocol::VERSION}..."
24
+ mq = AMQP::Channel.new(connection)
25
+ exchange = mq.direct(Helpers::amqp_exchange_name)
26
+ queue = mq.queue('', :exclusive => true).bind(exchange, :routing_key => Helpers::amqp_routing_key)
27
27
 
28
- begin
29
28
  OmniLog::info "Setup omnibot..."
30
29
  @omnibot = JabberBot.new(Jabber::JID::new(@config['omnibotuser']), @config['omnibotpass'])
31
30
  @omnibot.timer_provider = EM
@@ -39,18 +38,20 @@ module OmniBot
39
38
  handler.startup_pause = index*10
40
39
  handler.start
41
40
  end
41
+
42
+ OmniLog::info "==== AMQP is ready ===="
42
43
 
43
- rescue => e
44
- OmniLog::error "Sending message error: #{e.message}\ntrace:\n#{Helpers::backtrace e}\nExiting..."
45
- AMQP.stop{ EM.stop }
46
- end
47
-
48
- OmniLog::info "==== AMQP is ready ===="
44
+ queue.subscribe do |msg|
45
+ message = Marshal.load msg
46
+ send_message message
47
+ end
49
48
 
50
- queue.subscribe do |msg|
51
- message = Marshal.load msg
52
- send_message message
53
49
  end
50
+
51
+ # it is a function rescue block, don't be afraid
52
+ rescue => e
53
+ OmniLog::error "AMQP/Jabber setup error: #{e.message}\ntrace:\n#{Helpers::backtrace e}\nExiting..."
54
+ AMQP.stop{ EM.stop }
54
55
  end
55
56
 
56
57
  # Main AMQP loop
@@ -62,10 +63,8 @@ module OmniBot
62
63
  AMQP.stop{ EM.stop }
63
64
  end
64
65
 
65
- AMQP.start do
66
- amqp_loop
67
- end
68
-
66
+ amqp_loop
67
+
69
68
  OmniLog::info "Exited"
70
69
  end
71
70
 
@@ -57,6 +57,10 @@ module OmniBot
57
57
  def self.amqp_exchange_name
58
58
  'omnibot-exchange'
59
59
  end
60
+
61
+ def self.amqp_routing_key
62
+ 'omnibot-routing'
63
+ end
60
64
 
61
65
  end
62
66
 
@@ -13,12 +13,11 @@ module OmniBot
13
13
 
14
14
  Signal.trap('INT') { AMQP.stop{ EM.stop } }
15
15
 
16
- AMQP.start do
17
- mq = AMQP::Channel.new
16
+ AMQP.start do |connection|
17
+ mq = AMQP::Channel.new(connection)
18
18
  exchange = mq.direct(Helpers::amqp_exchange_name)
19
- exchange.publish(data)
20
- puts 'sent'
21
- AMQP.stop{ EM.stop }
19
+ exchange.publish(data, :routing_key => Helpers::amqp_routing_key)
20
+ EM.add_timer(2.0) { connection.close { puts 'sent' ; EM.stop } }
22
21
  end
23
22
  end
24
23
  end
@@ -1,3 +1,3 @@
1
1
  module OmniBot
2
- VERSION = '0.0.12'
2
+ VERSION = '0.0.13'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omnibot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-28 00:00:00.000000000Z
12
+ date: 2011-11-10 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: xmpp4r
16
- requirement: &70295142817300 !ruby/object:Gem::Requirement
16
+ requirement: &70201186655820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70295142817300
24
+ version_requirements: *70201186655820
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: eventmachine
27
- requirement: &70295142815520 !ruby/object:Gem::Requirement
27
+ requirement: &70201186654920 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70295142815520
35
+ version_requirements: *70201186654920
36
36
  - !ruby/object:Gem::Dependency
37
- name: amqp
38
- requirement: &70295142814260 !ruby/object:Gem::Requirement
37
+ name: mail
38
+ requirement: &70201186654100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70295142814260
46
+ version_requirements: *70201186654100
47
47
  - !ruby/object:Gem::Dependency
48
- name: mail
49
- requirement: &70295142813420 !ruby/object:Gem::Requirement
48
+ name: sqlite3
49
+ requirement: &70201186652760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,18 +54,18 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70295142813420
57
+ version_requirements: *70201186652760
58
58
  - !ruby/object:Gem::Dependency
59
- name: sqlite3
60
- requirement: &70295142812580 !ruby/object:Gem::Requirement
59
+ name: amqp
60
+ requirement: &70201186651480 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
64
64
  - !ruby/object:Gem::Version
65
- version: '0'
65
+ version: 0.8.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70295142812580
68
+ version_requirements: *70201186651480
69
69
  description: Works with AMQP for sending messages at server side.Sends notifications
70
70
  to an user via XMPP.Can monitor system by performing daily commands.
71
71
  email: theirix@gmail.com
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  segments:
112
112
  - 0
113
- hash: 1612202538999953127
113
+ hash: 3706692739125381398
114
114
  requirements:
115
115
  - AMQP-compatible server (for example, RabbitMQ)
116
116
  rubyforge_project: nowarning