cosgrove 0.0.3.5 → 0.0.4.0pre1

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
- 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'