omnibot 0.0.12 → 0.0.13

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.
@@ -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