mpex 0.4.6 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 75ca9aee6159266cfd7cc27d8fe3612f96a569cb
4
- data.tar.gz: ffadf1b2a0830efc46e6977fbded6ef9759379d9
3
+ metadata.gz: 658fe66b10c2a22bcfa1eada43373cad3bd62f74
4
+ data.tar.gz: a99ab6a7c1cfcd058f4e4f6430c651286d8ea6d6
5
5
  SHA512:
6
- metadata.gz: e7eb0911853927001842f53116f37c87c069d1f5054a02f0f4816934b3eca87d849f98fb5a8ccae06c609b36876fd31b5214d367a78aac2f5f10e1998cd337ea
7
- data.tar.gz: 207037af4b69b56ad8cd536d1ebe06bd0cdd26e392062ce036d7ae2152a5e590ddaccd8832beba7ec4326486068b1e7a68980f6580da83cb8f561f1c5af38492
6
+ metadata.gz: cdfbe7c29b3622eb97223f26847b7ac06d1a012b7e9e91c5c2eb207287d3b2ea7463e75b96dc21c01a74ca955cba3d665fc5931c370e07af382e760fe47a31f1
7
+ data.tar.gz: 25cba8ee8577f4b39a51a0629467ff3f635e3e0f2c5b9f24f2561ce6ba860fe43ed86d4dd5a62f4992ba9ba652e0efaa87b9e80b6f08aabc2200f98974a16671
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mpex (0.4.6)
4
+ mpex (0.5.0)
5
5
  cri (~> 2.2)
6
6
  gpgme
7
7
  highline
data/lib/mpex/cli.rb CHANGED
@@ -161,10 +161,25 @@ end
161
161
  end
162
162
  end
163
163
 
164
+ @cmd.define_command do
165
+ name 'portfolio'
166
+ usage 'portfolio [options]'
167
+ summary ""
168
+
169
+ run do |opts, args|
170
+ mpex = Mpex::Mpex.new
171
+ mpex.send_plain('STATJSON', opts) do |stat|
172
+ mpex.portfolio(opts, JSON.parse(stat)) do |portfolio|
173
+ puts portfolio
174
+ end if stat
175
+ end
176
+ end
177
+ end
178
+
164
179
  @cmd.define_command do
165
180
  name 'orderbook'
166
181
  usage 'orderbook [options]'
167
- summary "show mpex orderbook"
182
+ summary "show MPEx orderbook"
168
183
 
169
184
  run do |opts, args|
170
185
  mpex = Mpex::Mpex.new
data/lib/mpex/irc.rb CHANGED
@@ -48,6 +48,7 @@ module Mpex
48
48
  def send_encrypted(message, &block)
49
49
  res = Net::HTTP.post_form(URI.parse("http://dpaste.com/api/v1/"), { 'content' => "#{message}" })
50
50
  dpaste_url = res['Location']
51
+ puts "[IRC] Messaging #{ASSBOT}: !mp #{dpaste_url}"
51
52
  @irc.msg(ASSBOT, "!mp " + dpaste_url)
52
53
 
53
54
  status = Timeout::timeout(TIMEOUT) {
@@ -60,6 +61,7 @@ module Mpex
60
61
  if @last_message
61
62
  answer = handle_assbot_incoming(@last_message[:message])
62
63
  if answer
64
+ puts "[IRC] #{ASSBOT} answered: #{@last_message[:message]}"
63
65
  @last_message = nil
64
66
  return answer
65
67
  end
@@ -75,6 +77,7 @@ module Mpex
75
77
  end
76
78
 
77
79
  def vwap(&block)
80
+ puts "[IRC] Messaging #{MPEXBOT}: $vwap"
78
81
  @irc.msg MPEXBOT, '$vwap'
79
82
 
80
83
  status = Timeout::timeout(TIMEOUT) {
@@ -83,6 +86,7 @@ module Mpex
83
86
  end
84
87
 
85
88
  def depth(&block)
89
+ puts "[IRC] Messaging #{MPEXBOT}: $depth"
86
90
  @irc.msg MPEXBOT, '$depth'
87
91
 
88
92
  status = Timeout::timeout(TIMEOUT) {
@@ -91,6 +95,7 @@ module Mpex
91
95
  end
92
96
 
93
97
  def list_proxies(&block)
98
+ puts "[IRC] Messaging #{MPEXBOT}: $proxies"
94
99
  @irc.msg MPEXBOT, '$proxies'
95
100
 
96
101
  status = Timeout::timeout(TIMEOUT) {
@@ -103,6 +108,7 @@ module Mpex
103
108
  if @last_message
104
109
  answer = @last_message[:message]
105
110
  if answer
111
+ puts "[IRC] #{MPEXBOT} answered: #{@last_message[:message]}"
106
112
  @last_message = nil
107
113
  return answer
108
114
  end
@@ -115,6 +121,7 @@ module Mpex
115
121
  if @last_message
116
122
  answer = handle_mpexbot_incoming(@last_message[:message])
117
123
  if answer
124
+ puts "[IRC] #{MPEXBOT} answered: #{@last_message[:message]}"
118
125
  @last_message = nil
119
126
  return answer
120
127
  end
@@ -123,10 +130,12 @@ module Mpex
123
130
  end
124
131
 
125
132
  def handle_mpexbot_incoming(msg)
126
- if msg.start_with?("http://pastebin.com")
133
+ if msg.match(/http:\/\/pastebin\.com\/\d+/)
127
134
  id = URI.parse(msg).path[1..-1]
128
135
  uri = URI.parse("http://pastebin.com/raw.php?i=" + id)
129
136
  return Net::HTTP.get(uri)
137
+ elsif msg.start_with?("http://pastebin.com/raw.php")
138
+ return Net::HTTP.get(URI.parse(msg))
130
139
  end
131
140
  end
132
141
 
data/lib/mpex/mpex.rb CHANGED
@@ -114,12 +114,14 @@ module Mpex
114
114
  orders_value
115
115
  end
116
116
 
117
- def fetch_mpex_vwaps(url, &block)
117
+ def fetch_mpex_vwaps(url=nil, opts=nil, &block)
118
+ vwaps = ""
118
119
  if $IRC_LEAK && $IRC_LEAK.connected?
119
120
  $IRC_LEAK.vwap do |resp|
120
121
  vwaps = JSON.parse(resp)
121
122
  end
122
123
  else
124
+ url = url ? url : verify_opts_present(opts, [ :url ])[:url]
123
125
  vwaps_raw = Http.get(url, "/mpex-vwap.php")
124
126
  vwaps = JSON.parse(vwaps_raw)
125
127
  end
@@ -173,13 +175,26 @@ module Mpex
173
175
  vwap_valuation = holdings_value + orders_vwap_sum(stat, vwaps)
174
176
 
175
177
  portfolio = <<-PORTFOLIO
176
- Your optimistic valuation: #{Converter.satoshi_to_btc(optimistic_value)}"
177
- VWAP valuation: #{Converter.satoshi_to_btc(vwap_valuation)}
178
+ Holdings:
179
+ #{holdings_formatted(stat)}
180
+ Totals:
181
+ Your optimistic valuation: #{Converter.satoshi_to_btc(optimistic_value)}"
182
+ VWAP valuation: #{Converter.satoshi_to_btc(vwap_valuation)}
178
183
  PORTFOLIO
179
184
  yield portfolio
180
185
  end
181
186
  end
182
187
 
188
+ def holdings_formatted(stat)
189
+ holdings = ""
190
+ stat["Holdings"].each do |h|
191
+ mpsic = h.keys.first
192
+ amount = mpsic == "CxBTC" ? Converter.satoshi_to_btc(h[h.keys.first]) : h[h.keys.first]
193
+ holdings = holdings + " #{mpsic}: #{amount}\n" unless h.keys.first == "md5Checksum"
194
+ end
195
+ holdings
196
+ end
197
+
183
198
  def holdings_avg_value(stat, vwaps)
184
199
  # TODO improve!
185
200
  holdings_value = stat["Holdings"].map do |h|
@@ -188,7 +203,9 @@ module Mpex
188
203
  elsif h["S.MPOE"]
189
204
  h["S.MPOE"].to_i*vwaps["S.MPOE"]["1d"]["avg"].to_i
190
205
  elsif h["S.DICE"]
191
- h["S.DICE"].to_i*vwaps["S.DICE"]["1d"]["avg"].to_i
206
+ h["S.DICE"].to_i*vwaps["S.BBET"]["1d"]["avg"].to_i
207
+ elsif h["S.BBET"]
208
+ h["S.BBET"].to_i*vwaps["S.BBET"]["1d"]["avg"].to_i
192
209
  else
193
210
  0
194
211
  end
data/lib/mpex/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mpex
2
- VERSION = "0.4.6"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mpex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fa Wuxi