mpex 0.4.1 → 0.4.2

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mpex/irc.rb +49 -19
  3. data/lib/mpex/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2454a26f57e35fe68ee81fa629266788b3eb9059
4
- data.tar.gz: 665b68f17bb164db43c929ac19f521e625e1fdd0
3
+ metadata.gz: d2e9cf3a474bbeed9681a7ce0907ff7e05b27c28
4
+ data.tar.gz: 437eee712d95706cc8b6c033ca71f447120f1f16
5
5
  SHA512:
6
- metadata.gz: 2f91599220b2d73afc0e3e17fdc3a3282cf5b752de040ffb72a1dbbc23bc507cf4e7084d6d9416471a99c5633f839d05a9d5cc338645b371945f3372edea2370
7
- data.tar.gz: 7ad5a9da36bd1995f0b3be3aac944e9f9d0fe1bb706b0e2be4540ff4870ab89c3aecf4a4f719fd3d4c23307e782b72ef6c77dc66ead45706717661ca1df3c3b5
6
+ metadata.gz: aa574c8245e15b4458b15c07c6296bf29559a42ef803f9a16f8d087585ca03bcbc2c96c45a0f1872cf1baddbdc4b3dcb4fc9a128a15d42402b6d8668b9495d7f
7
+ data.tar.gz: 44eb7fc2214ed39de00e59f5864d9f800c568f2183b96ac76328af486f62967baba049327f3846aeac8d8d7e08d2307ce24d33def160e320083579c806aca6fb
data/lib/mpex/irc.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'net/yail'
2
2
  require 'net/http'
3
+ require 'timeout'
3
4
 
4
5
  module Mpex
5
6
  # TODO to be improved and to be made configurable!
@@ -7,6 +8,7 @@ module Mpex
7
8
 
8
9
  ASSBOT = "assbot"
9
10
  MPEXBOT = "mpexbot"
11
+ TIMEOUT = 30 # seconds
10
12
 
11
13
  def initialize
12
14
  @irc = Net::YAIL.new(
@@ -26,6 +28,10 @@ module Mpex
26
28
  @connected = true
27
29
  end
28
30
 
31
+ @irc.hearing_msg do |event|
32
+ @last_message = {:nick => event.nick, :message => event.message}
33
+ end
34
+
29
35
  puts "Connecting. Please wait."
30
36
 
31
37
  @irc.start_listening
@@ -44,39 +50,63 @@ module Mpex
44
50
  dpaste_url = res['Location']
45
51
  @irc.msg(ASSBOT, "!mp " + dpaste_url)
46
52
 
47
- @irc.hearing_msg do |event|
48
- resp_url = parse_message(event.message)
49
- mpex_res = Net::HTTP.get(URI.parse(resp_url)) if resp_url
50
- yield mpex_res
53
+ status = Timeout::timeout(TIMEOUT) {
54
+ yield wait_for_assbot_message
55
+ }
56
+ end
57
+
58
+ def wait_for_assbot_message
59
+ while true
60
+ if @last_message
61
+ answer = handle_assbot_incoming(@last_message[:message])
62
+ if answer
63
+ @last_message = nil
64
+ return answer
65
+ end
66
+ end
51
67
  end
52
68
  end
53
69
 
54
- def parse_message(msg)
70
+ def handle_assbot_incoming(msg)
55
71
  if msg.start_with? "Response: http:"
56
- return msg.split[1]
72
+ resp_url = msg.split[1]
73
+ return Net::HTTP.get(URI.parse(resp_url))
57
74
  end
58
75
  end
59
76
 
60
77
  def vwap(&block)
61
78
  @irc.msg MPEXBOT, '$vwap'
62
-
63
- @irc.hearing_msg do |event|
64
- mpexbot_res = Net::HTTP.get(URI.parse(event.message)) if event.message.start_with?("http:")
65
- yield mpexbot_res.to_s if mpexbot_res
66
- end
79
+
80
+ status = Timeout::timeout(TIMEOUT) {
81
+ yield wait_for_mpexbot_message
82
+ }
67
83
  end
68
84
 
69
85
  def depth(&block)
70
86
  @irc.msg MPEXBOT, '$depth'
71
-
72
- @irc.hearing_msg do |event|
73
- if event.message.start_with?("http:")
74
- uri = URI.parse(event.message);
75
- id = uri.path[1..-1]
76
- uri = URI.parse("http://pastebin.com/raw.php?i=" + id)
77
- mpexbot_res = Net::HTTP.get(uri)
87
+
88
+ status = Timeout::timeout(TIMEOUT) {
89
+ yield wait_for_mpexbot_message
90
+ }
91
+ end
92
+
93
+ def wait_for_mpexbot_message
94
+ while true
95
+ if @last_message
96
+ answer = handle_mpexbot_incoming(@last_message[:message])
97
+ if answer
98
+ @last_message = nil
99
+ return answer
100
+ end
78
101
  end
79
- yield mpexbot_res.to_s if mpexbot_res
102
+ end
103
+ end
104
+
105
+ def handle_mpexbot_incoming(msg)
106
+ if msg.start_with?("http://pastebin.com")
107
+ id = URI.parse(msg).path[1..-1]
108
+ uri = URI.parse("http://pastebin.com/raw.php?i=" + id)
109
+ return Net::HTTP.get(uri)
80
110
  end
81
111
  end
82
112
 
data/lib/mpex/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mpex
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mpex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fa Wuxi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-09 00:00:00.000000000 Z
11
+ date: 2013-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cri