cosgrove 0.0.3.5 → 0.0.4.0pre1

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
- SHA1:
3
- metadata.gz: bac465f9c2b8fa574b8c2eacb612a88c7ea82cae
4
- data.tar.gz: 64e6e6994059bd030276924844d3e129a690121e
2
+ SHA256:
3
+ metadata.gz: 30ef938779ca56743ce5f8a4fa9612e251dc98d92fd0b7f92d30cf6fcbb9cc13
4
+ data.tar.gz: 31e31742772dc409ca264638289b13eab63952686d5d4eb10e7d0a87b318d16e
5
5
  SHA512:
6
- metadata.gz: 777b4dc3e3d5bf5d339b7a8dc6203ad43e39e4722e55c0b7ff40a7dfcfa4ac1690dbe358275e4d83d4cdfdfeba439fdd8339ef3f97d092d9b8b3a631a6de607b
7
- data.tar.gz: cd909b21d15bdaef5a9d4961f51c971e277accea8d146b790eb8ad4c0cc3f94721cca82d4f010501c222e55a8a89f50f9685c7420427500a53431b88fd619e7a
6
+ metadata.gz: a39ed8012f5c4baa02be75eafdd19def80d4f27d55f924a1b0214592843a0f33bc2db5ebf2620e57e6c5fc5ba21df5ed8fe6d73dfc97943d5dd3764217fb51cb
7
+ data.tar.gz: 0a0d21235b281c8085e90e65f675c6300f7825a78594e4aa475f60e593889284d3a8237915d15d0104f149da0b8ca5ef08e4a2a6ed5ed9e882f466f0e0824374
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'mechanize', git: 'https://github.com/sparklemotion/mechanize.git', branch: 'upgrade_net-http-persistent'
3
+ gem 'mechanize'
4
+ gem 'pry'
4
5
 
5
6
  gemspec
@@ -1,67 +1,50 @@
1
- GIT
2
- remote: https://github.com/sparklemotion/mechanize.git
3
- revision: f68b1a0bdeee9ec7c9a8b7854f8e6b81d62c43b2
4
- branch: upgrade_net-http-persistent
5
- specs:
6
- mechanize (2.7.5)
7
- domain_name (~> 0.5, >= 0.5.1)
8
- http-cookie (~> 1.0)
9
- mime-types (>= 1.17.2)
10
- net-http-digest_auth (~> 1.1, >= 1.1.1)
11
- net-http-persistent (>= 2.5.2)
12
- nokogiri (~> 1.6)
13
- ntlm-http (~> 0.1, >= 0.1.1)
14
- webrobots (>= 0.0.9, < 0.2)
15
-
16
1
  PATH
17
2
  remote: .
18
3
  specs:
19
- cosgrove (0.0.3.5)
4
+ cosgrove (0.0.4.0pre1)
20
5
  activesupport (~> 5.1, >= 5.1.1)
21
6
  ai4r (~> 1.13, >= 1.13)
22
7
  awesome_print (~> 1.7, >= 1.7.0)
23
8
  discordrb (~> 3.2, >= 3.2.1)
24
9
  golos_cloud (~> 1.1, >= 1.1.1rc1)
25
10
  mechanize (~> 2.7, >= 2.7.5)
26
- mongoid (~> 6.1, >= 6.1.0)
27
11
  phantomjs (~> 2.1, >= 2.1.1.0)
28
- radiator (~> 0.3, >= 0.3.15)
12
+ radiator (~> 0.4, >= 0.4.3)
29
13
  railties (~> 5.1, >= 5.1.1)
30
14
  rdiscount (~> 2.2, >= 2.2.0.1)
31
15
  rmagick (~> 2.16, >= 2.16.0)
32
16
  steem-slap (~> 0.0, >= 0.0.2)
33
17
  steem_api (~> 1.1, >= 1.1.1rc1)
34
- steem_data (~> 0.0, >= 0.0.3)
35
18
  wolfram-alpha (~> 0.3, >= 0.3.1)
36
19
 
37
20
  GEM
38
21
  remote: https://rubygems.org/
39
22
  specs:
40
- actionpack (5.1.4)
41
- actionview (= 5.1.4)
42
- activesupport (= 5.1.4)
23
+ actionpack (5.1.6)
24
+ actionview (= 5.1.6)
25
+ activesupport (= 5.1.6)
43
26
  rack (~> 2.0)
44
27
  rack-test (>= 0.6.3)
45
28
  rails-dom-testing (~> 2.0)
46
29
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
47
- actionview (5.1.4)
48
- activesupport (= 5.1.4)
30
+ actionview (5.1.6)
31
+ activesupport (= 5.1.6)
49
32
  builder (~> 3.1)
50
33
  erubi (~> 1.4)
51
34
  rails-dom-testing (~> 2.0)
52
35
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
53
- activemodel (5.1.4)
54
- activesupport (= 5.1.4)
55
- activerecord (5.1.4)
56
- activemodel (= 5.1.4)
57
- activesupport (= 5.1.4)
36
+ activemodel (5.1.6)
37
+ activesupport (= 5.1.6)
38
+ activerecord (5.1.6)
39
+ activemodel (= 5.1.6)
40
+ activesupport (= 5.1.6)
58
41
  arel (~> 8.0)
59
42
  activerecord-sqlserver-adapter (5.1.6)
60
43
  activerecord (~> 5.1.0)
61
44
  tiny_tds
62
- activesupport (5.1.4)
45
+ activesupport (5.1.6)
63
46
  concurrent-ruby (~> 1.0, >= 1.0.2)
64
- i18n (~> 0.7)
47
+ i18n (>= 0.7, < 2)
65
48
  minitest (~> 5.1)
66
49
  tzinfo (~> 1.1)
67
50
  addressable (2.5.2)
@@ -69,63 +52,69 @@ GEM
69
52
  ai4r (1.13)
70
53
  arel (8.0.0)
71
54
  awesome_print (1.8.0)
72
- bitcoin-ruby (0.0.15)
73
- bson (4.3.0)
55
+ bitcoin-ruby (0.0.18)
74
56
  builder (3.2.3)
75
- concurrent-ruby (1.0.5)
57
+ coderay (1.1.2)
58
+ concurrent-ruby (1.1.3)
76
59
  connection_pool (2.2.1)
77
60
  crack (0.4.3)
78
61
  safe_yaml (~> 1.0.0)
79
- crass (1.0.3)
80
- discordrb (3.2.1)
81
- discordrb-webhooks (~> 3.2.0.1)
62
+ crass (1.0.4)
63
+ discordrb (3.3.0)
64
+ discordrb-webhooks (~> 3.3.0)
65
+ ffi (>= 1.9.24)
82
66
  opus-ruby
83
67
  rbnacl (~> 3.4.0)
84
- rest-client
68
+ rest-client (>= 2.1.0.rc1)
85
69
  websocket-client-simple (>= 0.3.0)
86
- discordrb-webhooks (3.2.0.1)
87
- rest-client
88
- docile (1.1.5)
89
- domain_name (0.5.20170404)
70
+ discordrb-webhooks (3.3.0)
71
+ rest-client (>= 2.1.0.rc1)
72
+ docile (1.3.0)
73
+ domain_name (0.5.20180417)
90
74
  unf (>= 0.0.5, < 1.0.0)
91
- erubi (1.7.0)
75
+ erubi (1.7.1)
92
76
  event_emitter (0.2.6)
93
- ffi (1.9.18)
94
- golos_cloud (1.1.1rc1)
77
+ ffi (1.9.25)
78
+ golos_cloud (1.1.1)
95
79
  activerecord (>= 4, < 6)
96
80
  activerecord-sqlserver-adapter (>= 4, < 6)
97
81
  nokogiri (~> 1.8)
98
82
  rest-client (~> 2.0)
99
83
  tiny_tds (~> 1.3)
100
84
  hashdiff (0.3.7)
101
- hashie (3.5.7)
85
+ hashie (3.6.0)
86
+ http-accept (1.7.0)
102
87
  http-cookie (1.0.3)
103
88
  domain_name (~> 0.5)
104
- i18n (0.9.3)
89
+ i18n (1.1.1)
105
90
  concurrent-ruby (~> 1.0)
106
91
  json (2.1.0)
107
92
  little-plugger (1.1.4)
108
93
  logging (2.2.2)
109
94
  little-plugger (~> 1.1)
110
95
  multi_json (~> 1.10)
111
- loofah (2.1.1)
96
+ loofah (2.2.3)
112
97
  crass (~> 1.0.2)
113
98
  nokogiri (>= 1.5.9)
99
+ mechanize (2.7.6)
100
+ domain_name (~> 0.5, >= 0.5.1)
101
+ http-cookie (~> 1.0)
102
+ mime-types (>= 1.17.2)
103
+ net-http-digest_auth (~> 1.1, >= 1.1.1)
104
+ net-http-persistent (>= 2.5.2)
105
+ nokogiri (~> 1.6)
106
+ ntlm-http (~> 0.1, >= 0.1.1)
107
+ webrobots (>= 0.0.9, < 0.2)
114
108
  method_source (0.9.0)
115
109
  mime-types (3.1)
116
110
  mime-types-data (~> 3.2015)
117
111
  mime-types-data (3.2016.0521)
118
112
  mini_portile2 (2.3.0)
119
113
  minitest (5.11.3)
120
- minitest-line (0.6.4)
114
+ minitest-line (0.6.5)
121
115
  minitest (~> 5.0)
122
116
  minitest-proveit (1.0.0)
123
117
  minitest (> 5, < 7)
124
- mongo (2.5.0)
125
- bson (>= 4.3.0, < 5.0.0)
126
- mongoid (6.3.0)
127
- activemodel (~> 5.1)
128
- mongo (>= 2.5.0, < 3.0.0)
129
118
  multi_json (1.13.1)
130
119
  net-http-digest_auth (1.4.1)
131
120
  net-http-persistent (3.0.0)
@@ -137,11 +126,14 @@ GEM
137
126
  opus-ruby (1.0.1)
138
127
  ffi
139
128
  phantomjs (2.1.1.0)
140
- public_suffix (3.0.1)
141
- rack (2.0.4)
142
- rack-test (0.8.2)
129
+ pry (0.11.3)
130
+ coderay (~> 1.1.0)
131
+ method_source (~> 0.9.0)
132
+ public_suffix (3.0.2)
133
+ rack (2.0.6)
134
+ rack-test (1.1.0)
143
135
  rack (>= 1.0, < 3)
144
- radiator (0.3.15)
136
+ radiator (0.4.3)
145
137
  awesome_print (~> 1.7, >= 1.7.0)
146
138
  bitcoin-ruby (~> 0.0, >= 0.0.11)
147
139
  ffi (~> 1.9, >= 1.9.18)
@@ -152,40 +144,39 @@ GEM
152
144
  rails-dom-testing (2.0.3)
153
145
  activesupport (>= 4.2.0)
154
146
  nokogiri (>= 1.6)
155
- rails-html-sanitizer (1.0.3)
156
- loofah (~> 2.0)
157
- railties (5.1.4)
158
- actionpack (= 5.1.4)
159
- activesupport (= 5.1.4)
147
+ rails-html-sanitizer (1.0.4)
148
+ loofah (~> 2.2, >= 2.2.2)
149
+ railties (5.1.6)
150
+ actionpack (= 5.1.6)
151
+ activesupport (= 5.1.6)
160
152
  method_source
161
153
  rake (>= 0.8.7)
162
154
  thor (>= 0.18.1, < 2.0)
163
- rake (12.3.0)
155
+ rake (12.3.1)
164
156
  rbnacl (3.4.0)
165
157
  ffi
166
158
  rdiscount (2.2.0.1)
167
- rest-client (2.0.2)
159
+ rest-client (2.1.0.rc1)
160
+ http-accept (>= 1.7.0, < 2.0)
168
161
  http-cookie (>= 1.0.2, < 2.0)
169
162
  mime-types (>= 1.16, < 4.0)
170
163
  netrc (~> 0.8)
171
164
  rmagick (2.16.0)
172
165
  safe_yaml (1.0.4)
173
- simplecov (0.15.1)
174
- docile (~> 1.1.0)
166
+ simplecov (0.16.1)
167
+ docile (~> 1.1)
175
168
  json (>= 1.8, < 3)
176
169
  simplecov-html (~> 0.10.0)
177
170
  simplecov-html (0.10.2)
178
171
  steem-slap (0.0.4)
179
- steem_api (1.1.1rc1)
172
+ steem_api (1.1.1)
180
173
  activerecord (>= 4, < 6)
181
174
  activerecord-sqlserver-adapter (>= 4, < 6)
182
175
  awesome_print (~> 1.7, >= 1.7.0)
183
176
  nokogiri (~> 1.8)
184
177
  rest-client (~> 2.0)
185
178
  tiny_tds (~> 1.3)
186
- steem_data (0.0.3)
187
- mongoid (~> 6.1, >= 6.1.0)
188
- thor (0.20.0)
179
+ thor (0.20.3)
189
180
  thread_safe (0.3.6)
190
181
  tiny_tds (1.3.0)
191
182
  mini_portile2 (~> 2.0)
@@ -193,20 +184,20 @@ GEM
193
184
  thread_safe (~> 0.1)
194
185
  unf (0.1.4)
195
186
  unf_ext
196
- unf_ext (0.0.7.4)
187
+ unf_ext (0.0.7.5)
197
188
  vcr (3.0.3)
198
- webmock (3.3.0)
189
+ webmock (3.4.1)
199
190
  addressable (>= 2.3.6)
200
191
  crack (>= 0.3.2)
201
192
  hashdiff
202
193
  webrobots (0.1.2)
203
- websocket (1.2.5)
194
+ websocket (1.2.8)
204
195
  websocket-client-simple (0.3.0)
205
196
  event_emitter
206
197
  websocket
207
198
  wolfram-alpha (0.3.1)
208
199
  nokogiri
209
- yard (0.9.12)
200
+ yard (0.9.16)
210
201
 
211
202
  PLATFORMS
212
203
  ruby
@@ -214,15 +205,16 @@ PLATFORMS
214
205
  DEPENDENCIES
215
206
  bundler (~> 1.15, >= 1.15.4)
216
207
  cosgrove!
217
- mechanize!
218
- minitest (~> 5.9, >= 5.9.0)
219
- minitest-line (~> 0.6, >= 0.6.3)
208
+ mechanize
209
+ minitest (~> 5.10, >= 5.10.3)
210
+ minitest-line (~> 0.6, >= 0.6.4)
220
211
  minitest-proveit (~> 1.0, >= 1.0.0)
212
+ pry
221
213
  rake (~> 12.1, >= 12.1.0)
222
214
  simplecov (~> 0.11, >= 0.11.2)
223
215
  vcr (~> 3.0, >= 3.0.3)
224
216
  webmock (~> 3.0, >= 3.0.1)
225
- yard (~> 0.9, >= 0.9.11)
217
+ yard (~> 0.9, >= 0.9.16)
226
218
 
227
219
  BUNDLED WITH
228
- 1.16.1
220
+ 1.16.5
@@ -20,21 +20,18 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency 'bundler', '~> 1.15', '>= 1.15.4'
21
21
  spec.add_development_dependency 'rake', '~> 12.1', '>= 12.1.0'
22
22
  spec.add_development_dependency 'minitest-proveit', '~> 1.0', '>= 1.0.0'
23
- spec.add_development_dependency 'minitest', '~> 5.9', '>= 5.9.0'
24
- spec.add_development_dependency 'minitest-line', '~> 0.6', '>= 0.6.3'
23
+ spec.add_development_dependency 'minitest', '~> 5.10', '>= 5.10.3'
24
+ spec.add_development_dependency 'minitest-line', '~> 0.6', '>= 0.6.4'
25
25
  spec.add_development_dependency 'webmock', '~> 3.0', '>= 3.0.1'
26
26
  spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
27
27
  spec.add_development_dependency 'simplecov', '~> 0.11', '>= 0.11.2'
28
- spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.11'
29
- # spec.add_development_dependency 'pry', '~> 0.10', '>= 0.10.3'
28
+ spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.16'
30
29
 
31
- spec.add_dependency 'radiator', '~> 0.3', '>= 0.3.15'
32
- spec.add_dependency 'steem_data', '~> 0.0', '>= 0.0.3'
30
+ spec.add_dependency 'radiator', '~> 0.4', '>= 0.4.3'
33
31
  spec.add_dependency 'steem_api', '~> 1.1', '>= 1.1.1rc1'
34
32
  spec.add_dependency 'golos_cloud', '~> 1.1', '>= 1.1.1rc1'
35
33
  spec.add_dependency 'discordrb', '~> 3.2', '>= 3.2.1'
36
34
  spec.add_dependency 'ai4r', '~> 1.13', '>= 1.13'
37
- spec.add_dependency 'mongoid', '~> 6.1', '>= 6.1.0'
38
35
  spec.add_dependency 'steem-slap', '~> 0.0', '>= 0.0.2'
39
36
  spec.add_dependency 'activesupport', '~> 5.1', '>= 5.1.1'
40
37
  spec.add_dependency 'railties', '~> 5.1', '>= 5.1.1'
@@ -4,25 +4,17 @@ require 'yaml'
4
4
  require 'action_view'
5
5
  require 'radiator'
6
6
  require 'awesome_print'
7
- require 'steem_data'
8
7
  require 'steem_api'
9
8
  require 'golos_cloud'
10
- # require 'irb' # for binding.irb
11
9
  # require 'pry' # for binding.pry
12
10
 
13
11
  Bundler.require
14
12
 
15
13
  defined? Thread.report_on_exception and Thread.report_on_exception = true
16
14
 
17
- SteemData.load
18
-
19
- # This will cause a nil to be returned instead of raising an error, allowing us
20
- # to fall back to SteemApi and/or RPC.
21
- Mongoid.raise_not_found_error = false
22
-
23
15
  module Cosgrove
24
16
  PWD = Dir.pwd.freeze
25
- KNOWN_CHAINS = [:steem, :golos, :test]
17
+ KNOWN_CHAINS = [:steem, :test]
26
18
 
27
19
  require 'cosgrove/version'
28
20
  require 'cosgrove/phantomjs'
@@ -60,7 +60,6 @@ module Cosgrove
60
60
  return if event.channel.pm? && !cosgrove_allow_pm_commands
61
61
  cb_account = nil
62
62
 
63
- mongo_behind_warning(event)
64
63
  if key.nil?
65
64
  event.respond "To create an account: https://steemit.com/enter_email?r=#{steem_account}"
66
65
  return
@@ -97,7 +96,6 @@ module Cosgrove
97
96
  self.command :register do |event, account_name, chain = :steem|
98
97
  return if event.channel.pm? && !cosgrove_allow_pm_commands
99
98
 
100
- mongo_behind_warning(event)
101
99
  discord_id = event.author.id
102
100
 
103
101
  if discord_id.to_i == 0
@@ -2,18 +2,25 @@ module Cosgrove
2
2
  module Market
3
3
  include Support
4
4
  include ActionView::Helpers::NumberHelper
5
-
5
+
6
+ def base_per_mvest(chain = :steem)
7
+ api(chain).get_dynamic_global_properties do |properties|
8
+ total_vesting_fund_steem = properties.total_vesting_fund_steem.to_f
9
+ total_vesting_shares_mvest = properties.total_vesting_shares.to_f / 1e6
10
+
11
+ total_vesting_fund_steem / total_vesting_shares_mvest
12
+ end
13
+ end
14
+
6
15
  def price_feed(chain = :steem)
7
16
  api(chain).get_feed_history do |feed_history|
8
- base_per_mvest = api(chain).steem_per_mvest
9
-
10
17
  current_median_history = feed_history.current_median_history
11
18
  base = current_median_history.base
12
19
  base = base.split(' ').first.to_f
13
20
  quote = current_median_history.quote
14
21
  quote = quote.split(' ').first.to_f
15
22
 
16
- base_per_debt = (base / quote) * base_per_mvest
23
+ base_per_debt = (base / quote) * base_per_mvest(chain)
17
24
 
18
25
  [base_per_mvest, base_per_debt]
19
26
  end
@@ -125,24 +132,13 @@ module Cosgrove
125
132
  end
126
133
 
127
134
  account_names = account_names.map(&:downcase).uniq
128
- accounts = SteemData::Account.where(:name.in => account_names)
129
- account = accounts.last
130
-
131
- if accounts.size == 0
132
- accounts = SteemApi::Account.where(name: account_names)
133
- account = accounts.limit(1).last
134
- end
135
+ accounts = SteemApi::Account.where(name: account_names)
136
+ account = accounts.limit(1).first
135
137
 
136
138
  if accounts.count == account_names.size
137
- if accounts.kind_of? Mongoid::Criteria
138
- vests = accounts.sum('vesting_shares.amount')
139
- delegated_vests = accounts.sum('delegated_vesting_shares.amount')
140
- received_vests = accounts.sum('received_vesting_shares.amount')
141
- else
142
- vests = accounts.pluck(:vesting_shares).map(&:to_f).sum
143
- delegated_vests = accounts.pluck(:delegated_vesting_shares).map(&:to_f).sum
144
- received_vests = accounts.pluck(:received_vesting_shares).map(&:to_f).sum
145
- end
139
+ vests = accounts.pluck(:vesting_shares).map(&:to_f).sum
140
+ delegated_vests = accounts.pluck(:delegated_vesting_shares).map(&:to_f).sum
141
+ received_vests = accounts.pluck(:received_vesting_shares).map(&:to_f).sum
146
142
  elsif !wildcards
147
143
  valid_names = accounts.distinct(:name)
148
144
  unknown_names = account_names - valid_names
@@ -209,7 +205,7 @@ module Cosgrove
209
205
  usd = number_to_currency(usd, precision: 3)
210
206
 
211
207
  "**#{account.name}:** `#{mgests} MGESTS = #{golos} GOLOS = #{gbg} GBG = #{usd}`"
212
- when :test then "Query not supported. No Mongo for Testnet."
208
+ when :test then "Query not supported. No database for Testnet."
213
209
  end
214
210
  end
215
211
 
@@ -267,11 +263,11 @@ module Cosgrove
267
263
  end
268
264
 
269
265
  def promoted(chain = :steem, period = :today)
270
- return "Query not supported. No Mongo for #{chain.to_s.capitalize}." unless chain == :steem
266
+ return "Query not supported. No database for #{chain.to_s.capitalize}." unless chain == :steem
271
267
 
272
- promoted = SteemData::AccountOperation.type('transfer').where(account: 'null', to: 'null', 'amount.asset' => 'SBD').send(period)
268
+ promoted = SteemApi::Tx::Transfer.where(to: 'null', amount_symbol: 'SBD').send(period)
273
269
  count_promoted = promoted.count
274
- sum_promoted = promoted.sum('amount.amount')
270
+ sum_promoted = promoted.sum(:amount)
275
271
 
276
272
  base_per_mvest, base_per_debt = price_feed(chain)
277
273
  total = api(chain).get_reward_fund('post') do |reward_fund|
@@ -362,9 +358,9 @@ module Cosgrove
362
358
  chain = options[:chain] || :steem
363
359
  account_names = options[:account_names]
364
360
  case chain
365
- when :steem then SteemData::Account.where(:name.in => account_names).sum('vesting_shares.amount')
366
- when :golos then "Query not supported. No Mongo for Golos."
367
- when :test then "Query not supported. No Mongo for Testnet."
361
+ when :steem then SteemApi::Account.where(name: account_names).sum("TRY_PARSE(REPLACE(vesting_shares, ' VESTS', '') AS float)")
362
+ when :golos then "Query not supported. No database for Golos."
363
+ when :test then "Query not supported. No database for Testnet."
368
364
  end
369
365
  end
370
366
 
@@ -5,8 +5,8 @@ module Cosgrove
5
5
  include ActionView::Helpers::DateHelper
6
6
 
7
7
  def suggest_account_name(account_name)
8
- regex = /.*#{account_name.chars.each.map { |c| c }.join('.*')}.*/
9
- guesses = SteemData::Account.where(name: regex).distinct(:name)
8
+ pattern = account_name.chars.each.map{ |c| c }.join('%')
9
+ guesses = SteemApi::Account.where("name LIKE '%#{pattern}%'").pluck(:name)
10
10
 
11
11
  if guesses.any?
12
12
  guesses.sample
@@ -28,41 +28,9 @@ module Cosgrove
28
28
  help.join
29
29
  end
30
30
 
31
- def mongo_behind_warning(event)
32
- elapse = -1
33
-
34
- begin
35
- message = []
36
-
37
- if (blocks = head_block_number(:steem) - steem_data_head_block_number) > 1200
38
- elapse = blocks * 3
39
- message << "Mongo is behind by #{time_ago_in_words(elapse.seconds.ago)}."
40
- else
41
- 0
42
- end
43
-
44
- if message.size > 0
45
- event.respond message.join(' ')
46
- end
47
- rescue => e
48
- event.respond "Mongo might be behind, but the API is also acting up. Please try again later.\n\n```#{e.inspect}\n```"
49
- sleep 15
50
- event.respond Cosgrove::SnarkCommands::WITTY.sample
51
- end
52
-
53
- elapse
54
- end
55
-
56
31
  def cannot_find_input(event, message_prefix = "Unable to find that.")
57
32
  message = [message_prefix]
58
33
 
59
- message << if (blocks = head_block_number(:steem) - steem_data_head_block_number) > 86400
60
- elapse = blocks * 3
61
- " Mongo is behind by #{time_ago_in_words(elapse.seconds.ago)}. Try again later."
62
- else
63
- " Mongo might be behind or this is not a valid input."
64
- end
65
-
66
34
  event.respond message.join(' ')
67
35
  end
68
36
 
@@ -82,7 +50,7 @@ module Cosgrove
82
50
  end
83
51
 
84
52
  post = case chain
85
- when :steem then SteemData::Post.where(author: author_name, permlink: permlink).last
53
+ when :steem then SteemApi::Comment.where(author: author_name, permlink: permlink).last
86
54
  when :golos then GolosCloud::Comment.where(author: author_name, permlink: permlink).last
87
55
  end
88
56
 
@@ -111,16 +79,18 @@ module Cosgrove
111
79
  "**#{age}** old"
112
80
  end
113
81
 
114
- if post.active_votes.any?
115
- upvotes = post.active_votes.map{ |v| v if v['percent'] > 0 }.compact.count
116
- downvotes = post.active_votes.map{ |v| v if v['percent'] < 0 }.compact.count
82
+ active_votes = SteemApi::Tx::Vote.where(author: post.author, permlink: post.permlink)
83
+
84
+ if active_votes.any?
85
+ upvotes = active_votes.map{ |v| v if v.weight > 0 }.compact.count
86
+ downvotes = active_votes.map{ |v| v if v.weight < 0 }.compact.count
117
87
  netvotes = upvotes - downvotes
118
88
  details << "Net votes: #{netvotes}"
119
89
 
120
90
  # Only append this detail of the post less than an hour old.
121
91
  if created > 1.hour.ago
122
92
  votes = case chain
123
- when :steem then SteemData::AccountOperation.type('vote').starting(post.created)
93
+ when :steem then SteemApi::Tx::Vote.where('timestamp > ?', post.created)
124
94
  when :golos then GolosCloud::Vote.where('timestamp > ?', post.created)
125
95
  end
126
96
  total_votes = votes.count
@@ -134,8 +104,8 @@ module Cosgrove
134
104
 
135
105
  details << "Comments: #{post.children.to_i}"
136
106
 
137
- page_views = page_views("/#{post.parent_permlink}/@#{post.author}/#{post.permlink}")
138
- details << "Views: #{page_views}" if !!page_views
107
+ # page_views = page_views("/#{post.parent_permlink}/@#{post.author}/#{post.permlink}")
108
+ # details << "Views: #{page_views}" if !!page_views
139
109
 
140
110
  begin
141
111
  event.respond details.join('; ')
@@ -153,7 +123,7 @@ module Cosgrove
153
123
  raise "Required argument: chain" if chain.nil?
154
124
 
155
125
  if chain == :steem
156
- account = if (accounts = SteemData::Account.where(name: key)).any?
126
+ account = if (accounts = SteemApi::Account.where(name: key)).any?
157
127
  accounts.first
158
128
  end
159
129
  end
@@ -206,7 +176,7 @@ module Cosgrove
206
176
  'Origin' => 'https://steemit.com'
207
177
  })
208
178
 
209
- csrf = page.parser.to_html.split(',"csrf":"').last.split('","new_visit":').first
179
+ csrf = page.parser.to_html.split(':{"csrf":"').last.split('","new_visit":').first
210
180
  # Uncomment in case views stop showing.
211
181
  # puts "DEBUG: #{csrf}"
212
182
  return unless csrf.size == 36
@@ -29,7 +29,7 @@ module Cosgrove
29
29
  return
30
30
  end
31
31
 
32
- votes_today = SteemData::AccountOperation.type('vote').where(voter: steem_account).today
32
+ votes_today = SteemApi::Tx::Vote.where(voter: steem_account).today
33
33
  today_count = votes_today.count
34
34
  author_count = votes_today.where(author: author_name).count
35
35
  vote_ratio = if today_count == 0
@@ -89,14 +89,6 @@ module Cosgrove
89
89
  end
90
90
  end
91
91
 
92
- def steem_data_head_block_number
93
- begin
94
- SteemData::AccountOperation.order(timestamp: -1).limit(1).first.block
95
- rescue
96
- -1
97
- end
98
- end
99
-
100
92
  def properties(chain)
101
93
  api(chain).get_dynamic_global_properties.result
102
94
  end
@@ -149,9 +141,9 @@ module Cosgrove
149
141
  offset = offset.to_i
150
142
 
151
143
  posts = if op == 'latest'
152
- SteemData::Post.root_posts.where(author: author.name).order(created: :desc)
144
+ SteemApi::Comment.where(depth: 0, author: author.name).order(created: :desc)
153
145
  elsif op == 'first'
154
- SteemData::Post.root_posts.where(author: author.name).order(created: :asc)
146
+ SteemApi::Comment.where(depth: 0, author: author.name).order(created: :asc)
155
147
  else
156
148
  []
157
149
  end
@@ -175,7 +167,7 @@ module Cosgrove
175
167
  parent_permlink = options[:parent_permlink]
176
168
 
177
169
  post = if chain == :steem
178
- posts = SteemData::Post.root_posts.where(author: author_name)
170
+ posts = SteemApi::Comment.where(depth: 0, author: author_name)
179
171
  posts = posts.where(permlink: permlink) if !!permlink
180
172
  posts = posts.where(parent_permlink: parent_permlink) if !!parent_permlink
181
173
 
@@ -215,19 +207,11 @@ module Cosgrove
215
207
  chain = options[:chain]
216
208
  author_name = options[:author_name]
217
209
 
218
- author = SteemData::Account.where(name: author_name).last
219
-
220
- if author.nil?
221
- author = begin
222
- SteemApi::Account.where(name: author_name).last
223
- rescue => e
224
- puts e
225
- end
226
- end
210
+ author = SteemApi::Account.where(name: author_name).first
227
211
 
228
212
  if author.nil?
229
213
  author = api(chain).get_accounts([author_name]) do |accounts, errors|
230
- accounts.last
214
+ accounts.first
231
215
  end
232
216
  end
233
217
 
@@ -242,8 +226,9 @@ module Cosgrove
242
226
 
243
227
  op = case chain
244
228
  when :steem
245
- transfers = SteemData::AccountOperation.type('transfer').
246
- where(account: steem_account, from: from, to: steem_account, memo: {'$regex' => ".*#{memo_key}.*"})
229
+ transfers = SteemApi::Tx::Transfer.
230
+ where(from: from, to: steem_account).
231
+ where("memo LIKE ?", "%#{memo_key}%")
247
232
 
248
233
  if transfers.any?
249
234
  transfers.last
@@ -261,8 +246,8 @@ module Cosgrove
261
246
  end
262
247
 
263
248
  if op.nil?
264
- # Fall back to RPC. The transaction is so new, SteemData hasn't seen it
265
- # yet, SteemData is behind, or there is no such transfer.
249
+ # Fall back to RPC. The transaction is so new, SteemApi hasn't seen it
250
+ # yet, SteemApi is behind, or there is no such transfer.
266
251
 
267
252
  api(chain).get_account_history(steem_account, -1, 10000) do |history, error|
268
253
  if !!error
@@ -1,4 +1,4 @@
1
1
  module Cosgrove
2
- VERSION = '0.0.3.5'
2
+ VERSION = '0.0.4.0pre1'
3
3
  AGENT_ID = "cosgrove/#{VERSION}"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cosgrove
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3.5
4
+ version: 0.0.4.0pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-05 00:00:00.000000000 Z
11
+ date: 2018-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -76,20 +76,20 @@ dependencies:
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '5.9'
79
+ version: '5.10'
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 5.9.0
82
+ version: 5.10.3
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '5.9'
89
+ version: '5.10'
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 5.9.0
92
+ version: 5.10.3
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: minitest-line
95
95
  requirement: !ruby/object:Gem::Requirement
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: '0.6'
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.6.3
102
+ version: 0.6.4
103
103
  type: :development
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '0.6'
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: 0.6.3
112
+ version: 0.6.4
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: webmock
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +179,7 @@ dependencies:
179
179
  version: '0.9'
180
180
  - - ">="
181
181
  - !ruby/object:Gem::Version
182
- version: 0.9.11
182
+ version: 0.9.16
183
183
  type: :development
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
@@ -189,47 +189,27 @@ dependencies:
189
189
  version: '0.9'
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
- version: 0.9.11
192
+ version: 0.9.16
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: radiator
195
195
  requirement: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - "~>"
198
198
  - !ruby/object:Gem::Version
199
- version: '0.3'
200
- - - ">="
201
- - !ruby/object:Gem::Version
202
- version: 0.3.15
203
- type: :runtime
204
- prerelease: false
205
- version_requirements: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: '0.3'
210
- - - ">="
211
- - !ruby/object:Gem::Version
212
- version: 0.3.15
213
- - !ruby/object:Gem::Dependency
214
- name: steem_data
215
- requirement: !ruby/object:Gem::Requirement
216
- requirements:
217
- - - "~>"
218
- - !ruby/object:Gem::Version
219
- version: '0.0'
199
+ version: '0.4'
220
200
  - - ">="
221
201
  - !ruby/object:Gem::Version
222
- version: 0.0.3
202
+ version: 0.4.3
223
203
  type: :runtime
224
204
  prerelease: false
225
205
  version_requirements: !ruby/object:Gem::Requirement
226
206
  requirements:
227
207
  - - "~>"
228
208
  - !ruby/object:Gem::Version
229
- version: '0.0'
209
+ version: '0.4'
230
210
  - - ">="
231
211
  - !ruby/object:Gem::Version
232
- version: 0.0.3
212
+ version: 0.4.3
233
213
  - !ruby/object:Gem::Dependency
234
214
  name: steem_api
235
215
  requirement: !ruby/object:Gem::Requirement
@@ -310,26 +290,6 @@ dependencies:
310
290
  - - ">="
311
291
  - !ruby/object:Gem::Version
312
292
  version: '1.13'
313
- - !ruby/object:Gem::Dependency
314
- name: mongoid
315
- requirement: !ruby/object:Gem::Requirement
316
- requirements:
317
- - - "~>"
318
- - !ruby/object:Gem::Version
319
- version: '6.1'
320
- - - ">="
321
- - !ruby/object:Gem::Version
322
- version: 6.1.0
323
- type: :runtime
324
- prerelease: false
325
- version_requirements: !ruby/object:Gem::Requirement
326
- requirements:
327
- - - "~>"
328
- - !ruby/object:Gem::Version
329
- version: '6.1'
330
- - - ">="
331
- - !ruby/object:Gem::Version
332
- version: 6.1.0
333
293
  - !ruby/object:Gem::Dependency
334
294
  name: steem-slap
335
295
  requirement: !ruby/object:Gem::Requirement
@@ -537,7 +497,6 @@ files:
537
497
  - lib/cosgrove/upvote_job.rb
538
498
  - lib/cosgrove/utils.rb
539
499
  - lib/cosgrove/version.rb
540
- - mongoid.yml
541
500
  - support/js/screencap.js
542
501
  homepage: https://github.com/steem-third-party/cosgrove
543
502
  licenses:
@@ -554,12 +513,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
554
513
  version: '0'
555
514
  required_rubygems_version: !ruby/object:Gem::Requirement
556
515
  requirements:
557
- - - ">="
516
+ - - ">"
558
517
  - !ruby/object:Gem::Version
559
- version: '0'
518
+ version: 1.3.1
560
519
  requirements: []
561
520
  rubyforge_project:
562
- rubygems_version: 2.6.14
521
+ rubygems_version: 2.7.7
563
522
  signing_key:
564
523
  specification_version: 4
565
524
  summary: Cosgrove Discord Bo t
@@ -1,9 +0,0 @@
1
- development:
2
- clients:
3
- default:
4
- database: SteemData
5
- hosts:
6
- - mongo1.steemdata.com:27017
7
- options:
8
- user: 'steemit'
9
- password: 'steemit'