watchcow 0.0.9 → 0.1.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6080cdde2570128036d8101431ed88182bea35c5020553350846b5967bc36333
4
- data.tar.gz: e391557868cc31f20e3c0e5861320bdb9cd1820fe088a53b74e3ad326248aa4c
3
+ metadata.gz: d4ab5d0732e75c883a3d49c49f3df8135ddebe108def030247efadd9dfcadae5
4
+ data.tar.gz: 527d958620db506d46f9673f6ab88cd99153211384399aea1eb284836135c343
5
5
  SHA512:
6
- metadata.gz: 613bb077941b9e46c84fd3eb54a67a2931419f4322235df80d24ef618ba9cc1d29ccbac1648ac6b96831476f2ed25e0cc48674a7c1c06fac1516d6ad43ab9da7
7
- data.tar.gz: 9782590eafd22f4c783a405bb1389fdd88b2c1f5492f1159dda56bff5fe4fa9c2986f957a9620dc598a117a562b805525b24f3cdd6dcb0d2d0db03c6d43dd8fd
6
+ metadata.gz: 85275053ba4d1d752fe63748de876c4e427d832b371f3db86982dacbb194b66fdba925cdbf8bacc8d43c0cc1f02bafffb65543c03751a017a9e07624d02d4efd
7
+ data.tar.gz: 55664d43e1eea63184a6231f45df738692bf218511a669843dc27a909986c7b1c8c22be1a9b78e0ea5a31abdb28dfe648cd0c56fd4d4c35833d5f57243f35fdd
@@ -7,8 +7,8 @@ require 'watchcow/rate'
7
7
  module Watchcow
8
8
  class Client
9
9
  class << self
10
- def call
11
- results = Watchcow::Rate.call
10
+ def call(coin=nil)
11
+ results = Watchcow::Rate.call(coin)
12
12
  cq_list = results[:cq_list]
13
13
  nq_list = results[:nq_list]
14
14
  nw_list = results[:nw_list]
@@ -21,6 +21,47 @@ module Watchcow
21
21
  }
22
22
  results.to_json
23
23
  end
24
+
25
+ def stare coin
26
+ while true
27
+ list_text(JSON.parse(call(coin)))
28
+ end
29
+ end
30
+
31
+ def list_text results
32
+ cq = results.dig('cq_list')
33
+ nq = results.dig('nq_list')
34
+ cw = results.dig('cw_list')
35
+ nw = results.dig('nw_list')
36
+ best_cq = cq.first
37
+ best_nq = nq.first
38
+ best_cw = cw.first
39
+ best_nw = nw.first
40
+ text = [best_nq, best_cq, best_nw, best_cw].each do |x|
41
+ t =
42
+ <<-CONTENT
43
+ #{x.dig('coin')}
44
+ remained: #{x.dig('days')}
45
+ annual margin: #{x.dig('margin')}%
46
+ expected margin: #{x.dig('expected_margin')}%
47
+ landed margin: #{x.dig('real_margin_expected')}%
48
+ first dm bid: #{x.dig('dm_first_bid')}
49
+ first spot bid: #{x.dig('spot_first_bid')}
50
+
51
+ CONTENT
52
+ puts t
53
+ end
54
+ end
55
+
56
+ def all_text results
57
+ results.map do |k, v|
58
+ v.map do |c|
59
+ c.values.map{|x| x}
60
+ end
61
+ end.inject(&:+).map do |str|
62
+ "<p>#{str}</p>"
63
+ end
64
+ end
24
65
  end
25
66
  end
26
67
  end
data/lib/watchcow/rate.rb CHANGED
@@ -9,9 +9,10 @@ module Watchcow
9
9
  'cw' => 'this_week'
10
10
  }
11
11
  class << self
12
- def call
12
+ def call coin=nil
13
13
  results = []
14
- Watchcow::ApiSymbol.contract_list.each do |coin|
14
+ coin_list = coin.nil? ? Watchcow::ApiSymbol.contract_list : [coin]
15
+ coin_list.each do |coin|
15
16
  Watchcow::ApiSymbol.dm_types.each do |t|
16
17
  dm_symbol = {symbol: "#{coin}_#{t}"}
17
18
  spot_symbol = {symbol: "#{coin}usdt"}
@@ -20,11 +21,12 @@ module Watchcow
20
21
  # puts dm_symbol.dig(:symbol)
21
22
  spot_result = Watchcow::MarketDepth.call(params: spot_symbol, k: :spot)
22
23
  # puts spot_symbol.dig(:symbol)
24
+ dm_result = JSON.parse dm_result
25
+ days_remain = self.days_remain_of(coin, t)
23
26
  rescue
24
27
  redo
25
28
  end
26
- dm_result = JSON.parse dm_result
27
- days_remain = self.days_remain_of(coin, t)
29
+
28
30
  dm_first_bid = dm_result.dig('tick', 'bids')[0][0].to_f
29
31
  spot_first_bid = spot_result.dig('tick', 'bids')[0][0].to_f
30
32
  margin_annual = (((dm_first_bid - spot_first_bid) / spot_first_bid) / days_remain * 365 * 100).round(6)
@@ -37,7 +39,7 @@ module Watchcow
37
39
  margin: margin_annual,
38
40
  days: days_remain,
39
41
  expected_margin: margin_expect,
40
- real_margin_expected: real_margin_expect
42
+ real_margin_expected: real_margin_expect,
41
43
  dm_first_bid: dm_first_bid,
42
44
  spot_first_bid: spot_first_bid
43
45
  }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Watchcow
4
- VERSION = "0.0.9"
4
+ VERSION = "0.1.5"
5
5
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watchcow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - DrinE Liu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-17 00:00:00.000000000 Z
11
+ date: 2021-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -67,7 +67,6 @@ files:
67
67
  - lib/watchcow/client.rb
68
68
  - lib/watchcow/contract_info.rb
69
69
  - lib/watchcow/market_depth.rb
70
- - lib/watchcow/output.rb
71
70
  - lib/watchcow/rate.rb
72
71
  - lib/watchcow/version.rb
73
72
  - watchcow-0.0.2.gem
@@ -76,6 +75,7 @@ files:
76
75
  - watchcow-0.0.5.gem
77
76
  - watchcow-0.0.6.gem
78
77
  - watchcow-0.0.7.gem
78
+ - watchcow-0.0.9.gem
79
79
  - watchcow.gemspec
80
80
  homepage: https://rubygems.org/gems
81
81
  licenses:
@@ -1,10 +0,0 @@
1
- # module Watchcow
2
- # class Output
3
- # class << self
4
- # def call text
5
- # path = File.expand_path('~/', __FILE__)
6
- # File.open("#{path}/info.html", 'w+'){|f| f.write(text)}
7
- # end
8
- # end
9
- # end
10
- # end