cosgrove 0.0.4.0pre2 → 0.0.4.0pre3
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 +4 -4
- data/.gitignore +1 -0
- data/README.md +22 -6
- data/cosgrove.gemspec +1 -2
- data/lib/cosgrove.rb +0 -1
- data/lib/cosgrove/bot.rb +1 -8
- data/lib/cosgrove/config.rb +0 -16
- data/lib/cosgrove/support.rb +36 -24
- data/lib/cosgrove/utils.rb +5 -27
- data/lib/cosgrove/version.rb +1 -1
- metadata +4 -25
- data/Gemfile.lock +0 -220
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4199a721cb39937e39933953807d5c4260530443cad30ef3158c899f3dcb673f
|
4
|
+
data.tar.gz: 9e59b88a764d8039d58ff8104beafc79dbc01bfbdb73f6f2f5de0d311cbe157b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a0ed9862bee58cdfcf793f7606b3c59a7ddb5c90db3d0b620937adce79caff76f1343eff326aba285a2b3fc8231f8703234ca9d89dddd760be61d1f8f991e2d
|
7
|
+
data.tar.gz: d7fbcaebb0f4fa4f947e0438f333a8a1b4a6d56ef785f508c43b47f503170aca9a846e113cbbae4512521da2490237b898cac9cd610ba746572147d086896cf3
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -4,11 +4,10 @@ Cosgrove is a STEEM Centric Discord Bot Framework that allows you to write your
|
|
4
4
|
|
5
5
|
One example of a bot that uses this framework is [@banjo](https://steemit.com/steemdata/@inertia/introducing-banjo) on SteemSpeak.
|
6
6
|
|
7
|
-
Many (not all) features work on Golos as well.
|
8
|
-
|
9
7
|
## New features
|
10
8
|
|
11
|
-
*
|
9
|
+
* Support for SteemApi (replacing SteemData)
|
10
|
+
* Optimized interactive messages to update as data is queried
|
12
11
|
* Gem updates.
|
13
12
|
|
14
13
|
## Features
|
@@ -65,10 +64,7 @@ Add a config file to your `ruby` project called `config.yml`:
|
|
65
64
|
:chain:
|
66
65
|
:steem_account:
|
67
66
|
:steem_posting_wif:
|
68
|
-
:golos_account:
|
69
|
-
:golos_posting_wif:
|
70
67
|
:steem_api_url: https://api.steemit.com
|
71
|
-
:golos_api_url: https://ws.golos.io
|
72
68
|
:discord:
|
73
69
|
:log_mode: info
|
74
70
|
```
|
@@ -91,6 +87,26 @@ SecureRandom.hex(32)
|
|
91
87
|
4. Give that URL to the Discord server/guild owner and have them authorize the bot.
|
92
88
|
5. Set the `token` and `client_id` in your bot constructor (see below).
|
93
89
|
|
90
|
+
## SteemSQL
|
91
|
+
|
92
|
+
Some features provided by `cosgrove` require access to [SteemSQL](http://steemsql.com/), which is a Microsoft SQL database containing all the Steem blockchain data.
|
93
|
+
|
94
|
+
**Please note:**
|
95
|
+
|
96
|
+
> SteemSQL has moved to a monthly subscription model and the default free account/password “steemit/steemit” has been disabled.
|
97
|
+
|
98
|
+
If you intend to use SteemSQL, you can provide the credentials in `authorize-steem-sql.sh`, then use this terminal command to enable SteemSQL just before running your bot. Copy the example `example-authorize-steem-sql.sh` and add your credentials:
|
99
|
+
|
100
|
+
```bash
|
101
|
+
source path/to/authorize-steem-sql.sh
|
102
|
+
```
|
103
|
+
|
104
|
+
Features that currently require SteemSQL:
|
105
|
+
|
106
|
+
* Details in `$mvests` command
|
107
|
+
* Any command that tries to suggest account names
|
108
|
+
* `$upvote` (when checking for dailly limits)
|
109
|
+
|
94
110
|
## Usage
|
95
111
|
|
96
112
|
Cosgrove is based on `discordrb`, see: https://github.com/meew0/discordrb
|
data/cosgrove.gemspec
CHANGED
@@ -28,8 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.16'
|
29
29
|
|
30
30
|
spec.add_dependency 'radiator', '~> 0.4', '>= 0.4.3'
|
31
|
-
spec.add_dependency 'steem_api', '~> 1.1', '>= 1.1.
|
32
|
-
spec.add_dependency 'golos_cloud', '~> 1.1', '>= 1.1.1rc1'
|
31
|
+
spec.add_dependency 'steem_api', '~> 1.1', '>= 1.1.2pre3'
|
33
32
|
spec.add_dependency 'discordrb', '~> 3.2', '>= 3.2.1'
|
34
33
|
spec.add_dependency 'ai4r', '~> 1.13', '>= 1.13'
|
35
34
|
spec.add_dependency 'steem-slap', '~> 0.0', '>= 0.0.2'
|
data/lib/cosgrove.rb
CHANGED
data/lib/cosgrove/bot.rb
CHANGED
@@ -3,10 +3,9 @@ require 'discordrb'
|
|
3
3
|
module Cosgrove
|
4
4
|
require 'cosgrove/snark_commands'
|
5
5
|
|
6
|
-
cattr_accessor :latest_steemit_link
|
6
|
+
cattr_accessor :latest_steemit_link
|
7
7
|
|
8
8
|
@@latest_steemit_link = {}
|
9
|
-
@@latest_golosio_link = {}
|
10
9
|
|
11
10
|
class Bot < Discordrb::Commands::CommandBot
|
12
11
|
include Support
|
@@ -34,12 +33,6 @@ module Cosgrove
|
|
34
33
|
Cosgrove::latest_steemit_link[event.channel.name] = link
|
35
34
|
append_link_details(event, link)
|
36
35
|
end
|
37
|
-
|
38
|
-
# A user typed a link to golos.io.
|
39
|
-
self.message(content: /http[s]*:\/\/golos\.io\/.*/, ignore_bots: false) do |event|
|
40
|
-
link = event.content.split(' ').first
|
41
|
-
Cosgrove::latest_golosio_link[event.channel.name] = link
|
42
|
-
end
|
43
36
|
end
|
44
37
|
|
45
38
|
def add_all_commands
|
data/lib/cosgrove/config.rb
CHANGED
@@ -36,14 +36,6 @@ module Cosgrove
|
|
36
36
|
[chain[:steem_api_failover_urls]].flatten.compact
|
37
37
|
end
|
38
38
|
|
39
|
-
def golos_api_url
|
40
|
-
chain[:golos_api_url]
|
41
|
-
end
|
42
|
-
|
43
|
-
def golos_api_failover_urls
|
44
|
-
[chain[:golos_api_failover_urls]].flatten.compact
|
45
|
-
end
|
46
|
-
|
47
39
|
def test_api_url
|
48
40
|
chain[:test_api_url]
|
49
41
|
end
|
@@ -60,14 +52,6 @@ module Cosgrove
|
|
60
52
|
chain[:steem_posting_wif]
|
61
53
|
end
|
62
54
|
|
63
|
-
def golos_account
|
64
|
-
chain[:golos_account]
|
65
|
-
end
|
66
|
-
|
67
|
-
def golos_posting_wif
|
68
|
-
chain[:golos_posting_wif]
|
69
|
-
end
|
70
|
-
|
71
55
|
def test_posting_wif
|
72
56
|
chain[:test_posting_wif]
|
73
57
|
end
|
data/lib/cosgrove/support.rb
CHANGED
@@ -38,22 +38,33 @@ module Cosgrove
|
|
38
38
|
author_name, permlink = parse_slug slug
|
39
39
|
created = nil
|
40
40
|
cashout_time = nil
|
41
|
+
message = nil
|
42
|
+
|
43
|
+
return unless !!author_name && !!permlink
|
41
44
|
|
42
45
|
if slug =~ /steemit.com/
|
43
46
|
chain = :steem
|
44
|
-
elsif slug =~ /golos.io/
|
45
|
-
chain = :golos
|
46
|
-
elsif slug =~ /golos.blog/
|
47
|
-
chain = :golos
|
48
47
|
else
|
49
48
|
return # silntlly ignore this slug
|
50
49
|
end
|
51
50
|
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
if !!event
|
52
|
+
begin
|
53
|
+
message = event.respond "Looking up #{author_name}/#{permlink} ..."
|
54
|
+
rescue Discordrb::Errors::NoPermission => _
|
55
|
+
puts "Unable to append link details on #{event.channel.server.name} in #{event.channel.name}"
|
56
|
+
return nil
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
posts = case chain
|
61
|
+
when :steem then SteemApi::Comment.where(author: author_name, permlink: permlink)
|
55
62
|
end
|
56
63
|
|
64
|
+
posts.select(:ID, :created, :cashout_time, :author, :permlink, :active_votes, :children)
|
65
|
+
|
66
|
+
post = posts.last
|
67
|
+
|
57
68
|
if post.nil?
|
58
69
|
# Fall back to RPC
|
59
70
|
api(chain).get_content(author_name, permlink) do |content, errors|
|
@@ -64,7 +75,11 @@ module Cosgrove
|
|
64
75
|
end
|
65
76
|
end
|
66
77
|
|
67
|
-
|
78
|
+
if post.nil?
|
79
|
+
message = message.edit 'Unable to locate.' if !!message
|
80
|
+
|
81
|
+
return
|
82
|
+
end
|
68
83
|
|
69
84
|
created ||= post.created
|
70
85
|
cashout_time ||= post.cashout_time
|
@@ -73,47 +88,46 @@ module Cosgrove
|
|
73
88
|
age = time_ago_in_words(created)
|
74
89
|
age = age.slice(0, 1).capitalize + age.slice(1..-1)
|
75
90
|
|
76
|
-
details << if created <
|
91
|
+
details << if created < 15.minutes.ago
|
77
92
|
"#{age} old"
|
78
93
|
else
|
79
94
|
"**#{age}** old"
|
80
95
|
end
|
96
|
+
message = message.edit details.join('; ') if !!message
|
81
97
|
|
82
|
-
active_votes =
|
98
|
+
active_votes = JSON[post.active_votes] rescue []
|
83
99
|
|
84
100
|
if active_votes.any?
|
85
|
-
upvotes = active_votes.map{ |v| v if v.
|
86
|
-
downvotes = active_votes.map{ |v| v if v.
|
101
|
+
upvotes = active_votes.map{ |v| v if v['weight'].to_i > 0 }.compact.count
|
102
|
+
downvotes = active_votes.map{ |v| v if v['weight'].to_i < 0 }.compact.count
|
87
103
|
netvotes = upvotes - downvotes
|
88
104
|
details << "Net votes: #{netvotes}"
|
105
|
+
message = message.edit details.join('; ') if !!message
|
89
106
|
|
90
107
|
# Only append this detail of the post less than an hour old.
|
91
108
|
if created > 1.hour.ago
|
92
109
|
votes = case chain
|
93
110
|
when :steem then SteemApi::Tx::Vote.where('timestamp > ?', post.created)
|
94
|
-
when :golos then GolosCloud::Vote.where('timestamp > ?', post.created)
|
95
111
|
end
|
96
|
-
total_votes = votes.count
|
97
|
-
total_voters = votes.distinct(:voter).
|
112
|
+
total_votes = votes.distinct("concat(author, permlink)").count
|
113
|
+
total_voters = votes.distinct(:voter).count
|
98
114
|
|
99
115
|
if total_votes > 0 && total_voters > 0
|
100
116
|
details << "Out of #{pluralize(total_votes - netvotes, 'vote')} cast by #{pluralize(total_voters, 'voter')}"
|
117
|
+
message = message.edit details.join('; ') if !!message
|
101
118
|
end
|
102
119
|
end
|
103
120
|
end
|
104
121
|
|
105
122
|
details << "Comments: #{post.children.to_i}"
|
123
|
+
message = message.edit details.join('; ') if !!message
|
106
124
|
|
125
|
+
# Page View counter is no longer supported by steemit.com.
|
107
126
|
# page_views = page_views("/#{post.parent_permlink}/@#{post.author}/#{post.permlink}")
|
108
127
|
# details << "Views: #{page_views}" if !!page_views
|
128
|
+
# message = message.edit details.join('; ') if !!message
|
109
129
|
|
110
|
-
|
111
|
-
event.respond details.join('; ')
|
112
|
-
rescue Discordrb::Errors::NoPermission => _
|
113
|
-
puts "Unable to append link details on #{event.channel.server.name} in #{event.channel.name}"
|
114
|
-
end
|
115
|
-
|
116
|
-
return nil
|
130
|
+
details.join('; ') if event.nil?
|
117
131
|
end
|
118
132
|
|
119
133
|
def find_account(key, event = nil, chain = :steem)
|
@@ -138,8 +152,6 @@ module Cosgrove
|
|
138
152
|
account = if !!key
|
139
153
|
if chain == :steem && (accounts = SteemApi::Account.where(name: key)).any?
|
140
154
|
accounts.first
|
141
|
-
elsif chain == :golos && (accounts = GolosCloud::Account.where(name: key)).any?
|
142
|
-
accounts.first
|
143
155
|
else
|
144
156
|
# Fall back to RPC
|
145
157
|
api(chain).get_accounts([key]) do |_accounts, errors|
|
data/lib/cosgrove/utils.rb
CHANGED
@@ -7,8 +7,8 @@ module Cosgrove
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def reset_api
|
10
|
-
@steem_api = @
|
11
|
-
@steem_folow_api = @
|
10
|
+
@steem_api = @test_api = nil
|
11
|
+
@steem_folow_api = @test_folow_api = nil
|
12
12
|
@cycle_api_at = nil
|
13
13
|
end
|
14
14
|
|
@@ -28,12 +28,6 @@ module Cosgrove
|
|
28
28
|
url: steem_api_url,
|
29
29
|
failover_urls: steem_api_failover_urls.any? ? steem_api_failover_urls : nil
|
30
30
|
}
|
31
|
-
when :golos
|
32
|
-
{
|
33
|
-
chain: :golos,
|
34
|
-
url: golos_api_url,
|
35
|
-
failover_urls: golos_api_failover_urls.any? ? golos_api_failover_urls : nil
|
36
|
-
}
|
37
31
|
when :test
|
38
32
|
{
|
39
33
|
chain: :test,
|
@@ -50,7 +44,6 @@ module Cosgrove
|
|
50
44
|
|
51
45
|
case chain
|
52
46
|
when :steem then @steem_api ||= Radiator::Api.new(chain_options(chain))
|
53
|
-
when :golos then @golos_api ||= Radiator::Api.new(chain_options(chain))
|
54
47
|
when :test then @test_api ||= Radiator::Api.new(chain_options(chain))
|
55
48
|
end
|
56
49
|
end
|
@@ -62,7 +55,6 @@ module Cosgrove
|
|
62
55
|
|
63
56
|
case chain
|
64
57
|
when :steem then @steem_follow_api ||= Radiator::FollowApi.new(chain_options(chain))
|
65
|
-
when :golos then @golos_follow_api ||= Radiator::FollowApi.new(chain_options(chain))
|
66
58
|
when :test then @test_follow_api ||= Radiator::FollowApi.new(chain_options(chain))
|
67
59
|
end
|
68
60
|
end
|
@@ -72,8 +64,8 @@ module Cosgrove
|
|
72
64
|
end
|
73
65
|
|
74
66
|
def reset_stream
|
75
|
-
@steem_stream = @
|
76
|
-
@steem_folow_stream = @
|
67
|
+
@steem_stream = @test_stream = nil
|
68
|
+
@steem_folow_stream = @test_folow_stream = nil
|
77
69
|
@cycle_stream_at = nil
|
78
70
|
end
|
79
71
|
|
@@ -84,7 +76,6 @@ module Cosgrove
|
|
84
76
|
|
85
77
|
case chain
|
86
78
|
when :steem then @steem_stream ||= Radiator::Stream.new(chain_options(chain))
|
87
|
-
when :golos then @golos_stream ||= Radiator::Stream.new(chain_options(chain))
|
88
79
|
when :test then @test_stream ||= Radiator::Stream.new(chain_options(chain))
|
89
80
|
end
|
90
81
|
end
|
@@ -104,7 +95,6 @@ module Cosgrove
|
|
104
95
|
def new_tx(chain)
|
105
96
|
case chain
|
106
97
|
when :steem then Radiator::Transaction.new(chain_options(chain).merge(wif: steem_posting_wif))
|
107
|
-
when :golos then Radiator::Transaction.new(chain_options(chain).merge(wif: golos_posting_wif))
|
108
98
|
when :test then Radiator::Transaction.new(chain_options(chain).merge(wif: test_posting_wif))
|
109
99
|
end
|
110
100
|
end
|
@@ -128,6 +118,7 @@ module Cosgrove
|
|
128
118
|
slug = slug.split('@').last
|
129
119
|
author_name = slug.split('/')[0]
|
130
120
|
permlink = slug.split('/')[1..-1].join('/')
|
121
|
+
permlink = permlink.split('#')[0]
|
131
122
|
|
132
123
|
[author_name, permlink]
|
133
124
|
end
|
@@ -181,12 +172,6 @@ module Cosgrove
|
|
181
172
|
posts = posts.where(permlink: permlink) if !!permlink
|
182
173
|
posts = posts.where(parent_permlink: parent_permlink) if !!parent_permlink
|
183
174
|
|
184
|
-
posts.first
|
185
|
-
when :golos
|
186
|
-
posts = GolosCloud::Comment.where(author: author_name)
|
187
|
-
posts = posts.where(permlink: permlink) if !!permlink
|
188
|
-
posts = posts.where(parent_permlink: parent_permlink) if !!parent_permlink
|
189
|
-
|
190
175
|
posts.first
|
191
176
|
end
|
192
177
|
end
|
@@ -238,11 +223,6 @@ module Cosgrove
|
|
238
223
|
where(to: to).
|
239
224
|
where("memo LIKE ?", "%#{memo_key}%").last
|
240
225
|
end
|
241
|
-
when :golos
|
242
|
-
GolosCloud::Tx::Transfer.
|
243
|
-
where(from: from).
|
244
|
-
where(to: to).
|
245
|
-
where("memo LIKE ?", "%#{memo_key}%").last
|
246
226
|
end
|
247
227
|
|
248
228
|
if op.nil?
|
@@ -275,7 +255,6 @@ module Cosgrove
|
|
275
255
|
def core_asset(chain = :steem)
|
276
256
|
case chain
|
277
257
|
when :steem then 'STEEM'
|
278
|
-
when :golos then 'GOLOS'
|
279
258
|
else; 'TESTS'
|
280
259
|
end
|
281
260
|
end
|
@@ -283,7 +262,6 @@ module Cosgrove
|
|
283
262
|
def debt_asset(chain = :steem)
|
284
263
|
case chain
|
285
264
|
when :steem then 'SBD'
|
286
|
-
when :golos then 'GBG'
|
287
265
|
else; 'TBD'
|
288
266
|
end
|
289
267
|
end
|
data/lib/cosgrove/version.rb
CHANGED
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.4.
|
4
|
+
version: 0.0.4.0pre3
|
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-
|
11
|
+
date: 2018-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -219,7 +219,7 @@ dependencies:
|
|
219
219
|
version: '1.1'
|
220
220
|
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 1.1.
|
222
|
+
version: 1.1.2pre3
|
223
223
|
type: :runtime
|
224
224
|
prerelease: false
|
225
225
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -229,27 +229,7 @@ dependencies:
|
|
229
229
|
version: '1.1'
|
230
230
|
- - ">="
|
231
231
|
- !ruby/object:Gem::Version
|
232
|
-
version: 1.1.
|
233
|
-
- !ruby/object:Gem::Dependency
|
234
|
-
name: golos_cloud
|
235
|
-
requirement: !ruby/object:Gem::Requirement
|
236
|
-
requirements:
|
237
|
-
- - "~>"
|
238
|
-
- !ruby/object:Gem::Version
|
239
|
-
version: '1.1'
|
240
|
-
- - ">="
|
241
|
-
- !ruby/object:Gem::Version
|
242
|
-
version: 1.1.1rc1
|
243
|
-
type: :runtime
|
244
|
-
prerelease: false
|
245
|
-
version_requirements: !ruby/object:Gem::Requirement
|
246
|
-
requirements:
|
247
|
-
- - "~>"
|
248
|
-
- !ruby/object:Gem::Version
|
249
|
-
version: '1.1'
|
250
|
-
- - ">="
|
251
|
-
- !ruby/object:Gem::Version
|
252
|
-
version: 1.1.1rc1
|
232
|
+
version: 1.1.2pre3
|
253
233
|
- !ruby/object:Gem::Dependency
|
254
234
|
name: discordrb
|
255
235
|
requirement: !ruby/object:Gem::Requirement
|
@@ -479,7 +459,6 @@ extra_rdoc_files: []
|
|
479
459
|
files:
|
480
460
|
- ".gitignore"
|
481
461
|
- Gemfile
|
482
|
-
- Gemfile.lock
|
483
462
|
- LICENSE
|
484
463
|
- README.md
|
485
464
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,220 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
cosgrove (0.0.4.0pre2)
|
5
|
-
activesupport (~> 5.1, >= 5.1.1)
|
6
|
-
ai4r (~> 1.13, >= 1.13)
|
7
|
-
awesome_print (~> 1.7, >= 1.7.0)
|
8
|
-
discordrb (~> 3.2, >= 3.2.1)
|
9
|
-
golos_cloud (~> 1.1, >= 1.1.1rc1)
|
10
|
-
mechanize (~> 2.7, >= 2.7.5)
|
11
|
-
phantomjs (~> 2.1, >= 2.1.1.0)
|
12
|
-
radiator (~> 0.4, >= 0.4.3)
|
13
|
-
railties (~> 5.1, >= 5.1.1)
|
14
|
-
rdiscount (~> 2.2, >= 2.2.0.1)
|
15
|
-
rmagick (~> 2.16, >= 2.16.0)
|
16
|
-
steem-slap (~> 0.0, >= 0.0.2)
|
17
|
-
steem_api (~> 1.1, >= 1.1.1rc1)
|
18
|
-
wolfram-alpha (~> 0.3, >= 0.3.1)
|
19
|
-
|
20
|
-
GEM
|
21
|
-
remote: https://rubygems.org/
|
22
|
-
specs:
|
23
|
-
actionpack (5.1.6)
|
24
|
-
actionview (= 5.1.6)
|
25
|
-
activesupport (= 5.1.6)
|
26
|
-
rack (~> 2.0)
|
27
|
-
rack-test (>= 0.6.3)
|
28
|
-
rails-dom-testing (~> 2.0)
|
29
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
30
|
-
actionview (5.1.6)
|
31
|
-
activesupport (= 5.1.6)
|
32
|
-
builder (~> 3.1)
|
33
|
-
erubi (~> 1.4)
|
34
|
-
rails-dom-testing (~> 2.0)
|
35
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
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)
|
41
|
-
arel (~> 8.0)
|
42
|
-
activerecord-sqlserver-adapter (5.1.6)
|
43
|
-
activerecord (~> 5.1.0)
|
44
|
-
tiny_tds
|
45
|
-
activesupport (5.1.6)
|
46
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
47
|
-
i18n (>= 0.7, < 2)
|
48
|
-
minitest (~> 5.1)
|
49
|
-
tzinfo (~> 1.1)
|
50
|
-
addressable (2.5.2)
|
51
|
-
public_suffix (>= 2.0.2, < 4.0)
|
52
|
-
ai4r (1.13)
|
53
|
-
arel (8.0.0)
|
54
|
-
awesome_print (1.8.0)
|
55
|
-
bitcoin-ruby (0.0.18)
|
56
|
-
builder (3.2.3)
|
57
|
-
coderay (1.1.2)
|
58
|
-
concurrent-ruby (1.1.3)
|
59
|
-
connection_pool (2.2.1)
|
60
|
-
crack (0.4.3)
|
61
|
-
safe_yaml (~> 1.0.0)
|
62
|
-
crass (1.0.4)
|
63
|
-
discordrb (3.3.0)
|
64
|
-
discordrb-webhooks (~> 3.3.0)
|
65
|
-
ffi (>= 1.9.24)
|
66
|
-
opus-ruby
|
67
|
-
rbnacl (~> 3.4.0)
|
68
|
-
rest-client (>= 2.1.0.rc1)
|
69
|
-
websocket-client-simple (>= 0.3.0)
|
70
|
-
discordrb-webhooks (3.3.0)
|
71
|
-
rest-client (>= 2.1.0.rc1)
|
72
|
-
docile (1.3.0)
|
73
|
-
domain_name (0.5.20180417)
|
74
|
-
unf (>= 0.0.5, < 1.0.0)
|
75
|
-
erubi (1.7.1)
|
76
|
-
event_emitter (0.2.6)
|
77
|
-
ffi (1.9.25)
|
78
|
-
golos_cloud (1.1.1)
|
79
|
-
activerecord (>= 4, < 6)
|
80
|
-
activerecord-sqlserver-adapter (>= 4, < 6)
|
81
|
-
nokogiri (~> 1.8)
|
82
|
-
rest-client (~> 2.0)
|
83
|
-
tiny_tds (~> 1.3)
|
84
|
-
hashdiff (0.3.7)
|
85
|
-
hashie (3.6.0)
|
86
|
-
http-accept (1.7.0)
|
87
|
-
http-cookie (1.0.3)
|
88
|
-
domain_name (~> 0.5)
|
89
|
-
i18n (1.1.1)
|
90
|
-
concurrent-ruby (~> 1.0)
|
91
|
-
json (2.1.0)
|
92
|
-
little-plugger (1.1.4)
|
93
|
-
logging (2.2.2)
|
94
|
-
little-plugger (~> 1.1)
|
95
|
-
multi_json (~> 1.10)
|
96
|
-
loofah (2.2.3)
|
97
|
-
crass (~> 1.0.2)
|
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)
|
108
|
-
method_source (0.9.0)
|
109
|
-
mime-types (3.1)
|
110
|
-
mime-types-data (~> 3.2015)
|
111
|
-
mime-types-data (3.2016.0521)
|
112
|
-
mini_portile2 (2.3.0)
|
113
|
-
minitest (5.11.3)
|
114
|
-
minitest-line (0.6.5)
|
115
|
-
minitest (~> 5.0)
|
116
|
-
minitest-proveit (1.0.0)
|
117
|
-
minitest (> 5, < 7)
|
118
|
-
multi_json (1.13.1)
|
119
|
-
net-http-digest_auth (1.4.1)
|
120
|
-
net-http-persistent (3.0.0)
|
121
|
-
connection_pool (~> 2.2)
|
122
|
-
netrc (0.11.0)
|
123
|
-
nokogiri (1.8.2)
|
124
|
-
mini_portile2 (~> 2.3.0)
|
125
|
-
ntlm-http (0.1.1)
|
126
|
-
opus-ruby (1.0.1)
|
127
|
-
ffi
|
128
|
-
phantomjs (2.1.1.0)
|
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)
|
135
|
-
rack (>= 1.0, < 3)
|
136
|
-
radiator (0.4.3)
|
137
|
-
awesome_print (~> 1.7, >= 1.7.0)
|
138
|
-
bitcoin-ruby (~> 0.0, >= 0.0.11)
|
139
|
-
ffi (~> 1.9, >= 1.9.18)
|
140
|
-
hashie (~> 3.5, >= 3.5.5)
|
141
|
-
json (~> 2.0, >= 2.0.2)
|
142
|
-
logging (~> 2.2, >= 2.2.0)
|
143
|
-
net-http-persistent (>= 2.5.2)
|
144
|
-
rails-dom-testing (2.0.3)
|
145
|
-
activesupport (>= 4.2.0)
|
146
|
-
nokogiri (>= 1.6)
|
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)
|
152
|
-
method_source
|
153
|
-
rake (>= 0.8.7)
|
154
|
-
thor (>= 0.18.1, < 2.0)
|
155
|
-
rake (12.3.1)
|
156
|
-
rbnacl (3.4.0)
|
157
|
-
ffi
|
158
|
-
rdiscount (2.2.0.1)
|
159
|
-
rest-client (2.1.0.rc1)
|
160
|
-
http-accept (>= 1.7.0, < 2.0)
|
161
|
-
http-cookie (>= 1.0.2, < 2.0)
|
162
|
-
mime-types (>= 1.16, < 4.0)
|
163
|
-
netrc (~> 0.8)
|
164
|
-
rmagick (2.16.0)
|
165
|
-
safe_yaml (1.0.4)
|
166
|
-
simplecov (0.16.1)
|
167
|
-
docile (~> 1.1)
|
168
|
-
json (>= 1.8, < 3)
|
169
|
-
simplecov-html (~> 0.10.0)
|
170
|
-
simplecov-html (0.10.2)
|
171
|
-
steem-slap (0.0.4)
|
172
|
-
steem_api (1.1.1)
|
173
|
-
activerecord (>= 4, < 6)
|
174
|
-
activerecord-sqlserver-adapter (>= 4, < 6)
|
175
|
-
awesome_print (~> 1.7, >= 1.7.0)
|
176
|
-
nokogiri (~> 1.8)
|
177
|
-
rest-client (~> 2.0)
|
178
|
-
tiny_tds (~> 1.3)
|
179
|
-
thor (0.20.3)
|
180
|
-
thread_safe (0.3.6)
|
181
|
-
tiny_tds (1.3.0)
|
182
|
-
mini_portile2 (~> 2.0)
|
183
|
-
tzinfo (1.2.5)
|
184
|
-
thread_safe (~> 0.1)
|
185
|
-
unf (0.1.4)
|
186
|
-
unf_ext
|
187
|
-
unf_ext (0.0.7.5)
|
188
|
-
vcr (3.0.3)
|
189
|
-
webmock (3.4.1)
|
190
|
-
addressable (>= 2.3.6)
|
191
|
-
crack (>= 0.3.2)
|
192
|
-
hashdiff
|
193
|
-
webrobots (0.1.2)
|
194
|
-
websocket (1.2.8)
|
195
|
-
websocket-client-simple (0.3.0)
|
196
|
-
event_emitter
|
197
|
-
websocket
|
198
|
-
wolfram-alpha (0.3.1)
|
199
|
-
nokogiri
|
200
|
-
yard (0.9.16)
|
201
|
-
|
202
|
-
PLATFORMS
|
203
|
-
ruby
|
204
|
-
|
205
|
-
DEPENDENCIES
|
206
|
-
bundler (~> 1.15, >= 1.15.4)
|
207
|
-
cosgrove!
|
208
|
-
mechanize
|
209
|
-
minitest (~> 5.10, >= 5.10.3)
|
210
|
-
minitest-line (~> 0.6, >= 0.6.4)
|
211
|
-
minitest-proveit (~> 1.0, >= 1.0.0)
|
212
|
-
pry
|
213
|
-
rake (~> 12.1, >= 12.1.0)
|
214
|
-
simplecov (~> 0.11, >= 0.11.2)
|
215
|
-
vcr (~> 3.0, >= 3.0.3)
|
216
|
-
webmock (~> 3.0, >= 3.0.1)
|
217
|
-
yard (~> 0.9, >= 0.9.16)
|
218
|
-
|
219
|
-
BUNDLED WITH
|
220
|
-
1.16.5
|