cosgrove 0.0.2 → 0.0.3rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/Gemfile.lock +57 -40
- data/README.md +1 -1
- data/cosgrove.gemspec +3 -3
- data/lib/cosgrove.rb +6 -1
- data/lib/cosgrove/account.rb +11 -6
- data/lib/cosgrove/bot.rb +15 -26
- data/lib/cosgrove/comment_job.rb +11 -14
- data/lib/cosgrove/config.rb +1 -1
- data/lib/cosgrove/market.rb +76 -64
- data/lib/cosgrove/support.rb +70 -21
- data/lib/cosgrove/upvote_job.rb +67 -29
- data/lib/cosgrove/utils.rb +132 -24
- data/lib/cosgrove/version.rb +1 -1
- metadata +12 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe7cb0da9ef53e623117b7abb364748436eb0836
|
4
|
+
data.tar.gz: 02a2f8d029e6195789bfc782d4788e9433cb853c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0983ecb03bc98fc988dac73ac9c8e2536afa914b39aa03feca0c3ccc964b9dc3aa38e2220ebf542fc0d8f75205c5513b28bb86c6ec675c125c947f83bf461e55'
|
7
|
+
data.tar.gz: 1393a41d3cd24cb51d29cd39de009d8ccc29a272f52be17ff6aca72645b537b63606d474abe2299583e18a408e68fda7fc7d4cd8afe91c6416d3a69c4d55f45c
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,20 +1,47 @@
|
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/steem-third-party/steem_api.git
|
3
|
+
revision: de44a65a21fa9f31db2a160132713a46b7cc7330
|
4
|
+
specs:
|
5
|
+
steem_api (1.0.0)
|
6
|
+
activerecord (>= 4, < 6)
|
7
|
+
activerecord-sqlserver-adapter (>= 4, < 6)
|
8
|
+
awesome_print (~> 1.7, >= 1.7.0)
|
9
|
+
nokogiri (~> 1.8)
|
10
|
+
rest-client (~> 2.0)
|
11
|
+
tiny_tds (~> 1.3)
|
12
|
+
|
13
|
+
GIT
|
14
|
+
remote: https://github.com/sparklemotion/mechanize.git
|
15
|
+
revision: f68b1a0bdeee9ec7c9a8b7854f8e6b81d62c43b2
|
16
|
+
branch: upgrade_net-http-persistent
|
17
|
+
specs:
|
18
|
+
mechanize (2.7.5)
|
19
|
+
domain_name (~> 0.5, >= 0.5.1)
|
20
|
+
http-cookie (~> 1.0)
|
21
|
+
mime-types (>= 1.17.2)
|
22
|
+
net-http-digest_auth (~> 1.1, >= 1.1.1)
|
23
|
+
net-http-persistent (>= 2.5.2)
|
24
|
+
nokogiri (~> 1.6)
|
25
|
+
ntlm-http (~> 0.1, >= 0.1.1)
|
26
|
+
webrobots (>= 0.0.9, < 0.2)
|
27
|
+
|
1
28
|
PATH
|
2
29
|
remote: .
|
3
30
|
specs:
|
4
|
-
cosgrove (0.0.
|
31
|
+
cosgrove (0.0.3rc1)
|
5
32
|
activesupport (~> 5.1, >= 5.1.1)
|
6
33
|
ai4r (~> 1.13, >= 1.13)
|
7
34
|
awesome_print (~> 1.7, >= 1.7.0)
|
8
35
|
discordrb (~> 3.2, >= 3.2.1)
|
36
|
+
golos_cloud (~> 1.0, >= 1.0.0)
|
9
37
|
mechanize (~> 2.7, >= 2.7.5)
|
10
38
|
mongoid (~> 6.1, >= 6.1.0)
|
11
39
|
phantomjs (~> 2.1, >= 2.1.1.0)
|
12
|
-
radiator (~> 0.3, >= 0.3.
|
40
|
+
radiator (~> 0.3, >= 0.3.15)
|
13
41
|
railties (~> 5.1, >= 5.1.1)
|
14
42
|
rdiscount (~> 2.2, >= 2.2.0.1)
|
15
43
|
rmagick (~> 2.16, >= 2.16.0)
|
16
44
|
steem-slap (~> 0.0, >= 0.0.2)
|
17
|
-
steem_api (~> 1.1, >= 1.1.0)
|
18
45
|
steem_data (~> 0.0, >= 0.0.3)
|
19
46
|
wolfram-alpha (~> 0.3, >= 0.3.1)
|
20
47
|
|
@@ -40,7 +67,7 @@ GEM
|
|
40
67
|
activemodel (= 5.1.4)
|
41
68
|
activesupport (= 5.1.4)
|
42
69
|
arel (~> 8.0)
|
43
|
-
activerecord-sqlserver-adapter (5.1.
|
70
|
+
activerecord-sqlserver-adapter (5.1.5)
|
44
71
|
activerecord (~> 5.1.0)
|
45
72
|
tiny_tds
|
46
73
|
activesupport (5.1.4)
|
@@ -53,14 +80,14 @@ GEM
|
|
53
80
|
ai4r (1.13)
|
54
81
|
arel (8.0.0)
|
55
82
|
awesome_print (1.8.0)
|
56
|
-
bitcoin-ruby (0.0.
|
83
|
+
bitcoin-ruby (0.0.14)
|
57
84
|
bson (4.2.2)
|
58
85
|
builder (3.2.3)
|
59
|
-
coderay (1.1.2)
|
60
86
|
concurrent-ruby (1.0.5)
|
87
|
+
connection_pool (2.2.1)
|
61
88
|
crack (0.4.3)
|
62
89
|
safe_yaml (~> 1.0.0)
|
63
|
-
crass (1.0.
|
90
|
+
crass (1.0.3)
|
64
91
|
discordrb (3.2.1)
|
65
92
|
discordrb-webhooks (~> 3.2.0.1)
|
66
93
|
opus-ruby
|
@@ -75,11 +102,17 @@ GEM
|
|
75
102
|
erubi (1.7.0)
|
76
103
|
event_emitter (0.2.6)
|
77
104
|
ffi (1.9.18)
|
105
|
+
golos_cloud (1.0.0)
|
106
|
+
activerecord (>= 4, < 6)
|
107
|
+
activerecord-sqlserver-adapter (>= 4, < 6)
|
108
|
+
nokogiri (~> 1.8)
|
109
|
+
rest-client (~> 2.0)
|
110
|
+
tiny_tds (~> 1.3)
|
78
111
|
hashdiff (0.3.7)
|
79
|
-
hashie (3.5.
|
112
|
+
hashie (3.5.7)
|
80
113
|
http-cookie (1.0.3)
|
81
114
|
domain_name (~> 0.5)
|
82
|
-
i18n (0.9.
|
115
|
+
i18n (0.9.1)
|
83
116
|
concurrent-ruby (~> 1.0)
|
84
117
|
json (2.1.0)
|
85
118
|
little-plugger (1.1.4)
|
@@ -89,21 +122,12 @@ GEM
|
|
89
122
|
loofah (2.1.1)
|
90
123
|
crass (~> 1.0.2)
|
91
124
|
nokogiri (>= 1.5.9)
|
92
|
-
mechanize (2.7.5)
|
93
|
-
domain_name (~> 0.5, >= 0.5.1)
|
94
|
-
http-cookie (~> 1.0)
|
95
|
-
mime-types (>= 1.17.2)
|
96
|
-
net-http-digest_auth (~> 1.1, >= 1.1.1)
|
97
|
-
net-http-persistent (~> 2.5, >= 2.5.2)
|
98
|
-
nokogiri (~> 1.6)
|
99
|
-
ntlm-http (~> 0.1, >= 0.1.1)
|
100
|
-
webrobots (>= 0.0.9, < 0.2)
|
101
125
|
method_source (0.9.0)
|
102
126
|
mime-types (3.1)
|
103
127
|
mime-types-data (~> 3.2015)
|
104
128
|
mime-types-data (3.2016.0521)
|
105
129
|
mini_portile2 (2.3.0)
|
106
|
-
minitest (5.
|
130
|
+
minitest (5.11.1)
|
107
131
|
minitest-line (0.6.4)
|
108
132
|
minitest (~> 5.0)
|
109
133
|
minitest-proveit (1.0.0)
|
@@ -113,9 +137,10 @@ GEM
|
|
113
137
|
mongoid (6.2.1)
|
114
138
|
activemodel (~> 5.1)
|
115
139
|
mongo (>= 2.4.1, < 3.0.0)
|
116
|
-
multi_json (1.
|
140
|
+
multi_json (1.13.1)
|
117
141
|
net-http-digest_auth (1.4.1)
|
118
|
-
net-http-persistent (
|
142
|
+
net-http-persistent (3.0.0)
|
143
|
+
connection_pool (~> 2.2)
|
119
144
|
netrc (0.11.0)
|
120
145
|
nokogiri (1.8.1)
|
121
146
|
mini_portile2 (~> 2.3.0)
|
@@ -123,14 +148,11 @@ GEM
|
|
123
148
|
opus-ruby (1.0.1)
|
124
149
|
ffi
|
125
150
|
phantomjs (2.1.1.0)
|
126
|
-
|
127
|
-
coderay (~> 1.1.0)
|
128
|
-
method_source (~> 0.9.0)
|
129
|
-
public_suffix (3.0.0)
|
151
|
+
public_suffix (3.0.1)
|
130
152
|
rack (2.0.3)
|
131
|
-
rack-test (0.
|
153
|
+
rack-test (0.8.2)
|
132
154
|
rack (>= 1.0, < 3)
|
133
|
-
radiator (0.3.
|
155
|
+
radiator (0.3.15)
|
134
156
|
awesome_print (~> 1.7, >= 1.7.0)
|
135
157
|
bitcoin-ruby (~> 0.0, >= 0.0.11)
|
136
158
|
ffi (~> 1.9, >= 1.9.18)
|
@@ -149,7 +171,7 @@ GEM
|
|
149
171
|
method_source
|
150
172
|
rake (>= 0.8.7)
|
151
173
|
thor (>= 0.18.1, < 2.0)
|
152
|
-
rake (12.
|
174
|
+
rake (12.3.0)
|
153
175
|
rbnacl (3.4.0)
|
154
176
|
ffi
|
155
177
|
rdiscount (2.2.0.1)
|
@@ -165,36 +187,30 @@ GEM
|
|
165
187
|
simplecov-html (~> 0.10.0)
|
166
188
|
simplecov-html (0.10.2)
|
167
189
|
steem-slap (0.0.3)
|
168
|
-
steem_api (1.1.0)
|
169
|
-
activerecord (>= 4, < 6)
|
170
|
-
activerecord-sqlserver-adapter (>= 4, < 6)
|
171
|
-
nokogiri (~> 1.8)
|
172
|
-
rest-client (~> 2.0)
|
173
|
-
tiny_tds (~> 1.3)
|
174
190
|
steem_data (0.0.3)
|
175
191
|
mongoid (~> 6.1, >= 6.1.0)
|
176
192
|
thor (0.20.0)
|
177
193
|
thread_safe (0.3.6)
|
178
194
|
tiny_tds (1.3.0)
|
179
195
|
mini_portile2 (~> 2.0)
|
180
|
-
tzinfo (1.2.
|
196
|
+
tzinfo (1.2.4)
|
181
197
|
thread_safe (~> 0.1)
|
182
198
|
unf (0.1.4)
|
183
199
|
unf_ext
|
184
200
|
unf_ext (0.0.7.4)
|
185
201
|
vcr (3.0.3)
|
186
|
-
webmock (3.1
|
202
|
+
webmock (3.2.1)
|
187
203
|
addressable (>= 2.3.6)
|
188
204
|
crack (>= 0.3.2)
|
189
205
|
hashdiff
|
190
206
|
webrobots (0.1.2)
|
191
|
-
websocket (1.2.
|
207
|
+
websocket (1.2.5)
|
192
208
|
websocket-client-simple (0.3.0)
|
193
209
|
event_emitter
|
194
210
|
websocket
|
195
211
|
wolfram-alpha (0.3.1)
|
196
212
|
nokogiri
|
197
|
-
yard (0.9.
|
213
|
+
yard (0.9.12)
|
198
214
|
|
199
215
|
PLATFORMS
|
200
216
|
ruby
|
@@ -202,15 +218,16 @@ PLATFORMS
|
|
202
218
|
DEPENDENCIES
|
203
219
|
bundler (~> 1.15, >= 1.15.4)
|
204
220
|
cosgrove!
|
221
|
+
mechanize!
|
205
222
|
minitest (~> 5.9, >= 5.9.0)
|
206
223
|
minitest-line (~> 0.6, >= 0.6.3)
|
207
224
|
minitest-proveit (~> 1.0, >= 1.0.0)
|
208
|
-
pry (~> 0.10, >= 0.10.3)
|
209
225
|
rake (~> 12.1, >= 12.1.0)
|
210
226
|
simplecov (~> 0.11, >= 0.11.2)
|
227
|
+
steem_api!
|
211
228
|
vcr (~> 3.0, >= 3.0.3)
|
212
229
|
webmock (~> 3.0, >= 3.0.1)
|
213
230
|
yard (~> 0.8, >= 0.8.7.6)
|
214
231
|
|
215
232
|
BUNDLED WITH
|
216
|
-
1.
|
233
|
+
1.16.0.pre.3
|
data/README.md
CHANGED
@@ -65,7 +65,7 @@ Add a config file to your `ruby` project called `config.yml`:
|
|
65
65
|
:steem_posting_wif:
|
66
66
|
:golos_account:
|
67
67
|
:golos_posting_wif:
|
68
|
-
:steem_api_url: https://
|
68
|
+
:steem_api_url: https://api.steemit.com
|
69
69
|
:golos_api_url: https://ws.golos.io
|
70
70
|
:discord:
|
71
71
|
:log_mode: info
|
data/cosgrove.gemspec
CHANGED
@@ -26,11 +26,11 @@ Gem::Specification.new do |spec|
|
|
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
28
|
spec.add_development_dependency 'yard', '~> 0.8', '>= 0.8.7.6'
|
29
|
-
spec.add_development_dependency 'pry', '~> 0.10', '>= 0.10.3'
|
29
|
+
# spec.add_development_dependency 'pry', '~> 0.10', '>= 0.10.3'
|
30
30
|
|
31
|
-
spec.add_dependency 'radiator', '~> 0.3', '>= 0.3.
|
31
|
+
spec.add_dependency 'radiator', '~> 0.3', '>= 0.3.15'
|
32
32
|
spec.add_dependency 'steem_data', '~> 0.0', '>= 0.0.3'
|
33
|
-
spec.add_dependency '
|
33
|
+
spec.add_dependency 'golos_cloud', '~> 1.0', '>= 1.0.0'
|
34
34
|
spec.add_dependency 'discordrb', '~> 3.2', '>= 3.2.1'
|
35
35
|
spec.add_dependency 'ai4r', '~> 1.13', '>= 1.13'
|
36
36
|
spec.add_dependency 'mongoid', '~> 6.1', '>= 6.1.0'
|
data/lib/cosgrove.rb
CHANGED
@@ -5,7 +5,8 @@ require 'action_view'
|
|
5
5
|
require 'radiator'
|
6
6
|
require 'awesome_print'
|
7
7
|
require 'steem_data'
|
8
|
-
# require '
|
8
|
+
# require 'irb' # for binding.irb
|
9
|
+
# require 'pry' # for binding.pry
|
9
10
|
|
10
11
|
Bundler.require
|
11
12
|
|
@@ -13,6 +14,10 @@ defined? Thread.report_on_exception and Thread.report_on_exception = true
|
|
13
14
|
|
14
15
|
SteemData.load
|
15
16
|
|
17
|
+
# This will cause a nil to be returned instead of raising an error, allowing us
|
18
|
+
# to fall back to SteemApi and/or RPC.
|
19
|
+
Mongoid.raise_not_found_error = false
|
20
|
+
|
16
21
|
module Cosgrove
|
17
22
|
PWD = Dir.pwd.freeze
|
18
23
|
KNOWN_CHAINS = [:steem, :golos, :test]
|
data/lib/cosgrove/account.rb
CHANGED
@@ -8,13 +8,13 @@ module Cosgrove
|
|
8
8
|
ACCOUNTS_FILE ||= "#{Cosgrove::PWD}/accounts.yml".freeze
|
9
9
|
DISCORD_IDS = 'discord_ids'.freeze
|
10
10
|
|
11
|
-
attr_accessor :
|
11
|
+
attr_accessor :account_name, :discord_ids
|
12
12
|
|
13
13
|
def initialize(account_name, chain = :steem)
|
14
|
-
|
14
|
+
@chain = chain.to_sym
|
15
|
+
raise "Unknown Chain: #{@chain}" unless Cosgrove::KNOWN_CHAINS.include? @chain
|
15
16
|
|
16
17
|
@account_name = account_name.to_s.downcase
|
17
|
-
@chain = chain
|
18
18
|
@discord_ids = []
|
19
19
|
|
20
20
|
if !!details
|
@@ -27,6 +27,8 @@ module Cosgrove
|
|
27
27
|
|
28
28
|
discord_id = discord_id.to_s.split('@').last.split('>').first.to_i
|
29
29
|
|
30
|
+
return nil if discord_id == 0
|
31
|
+
|
30
32
|
Account.yml[chain.to_s].each do |k, v|
|
31
33
|
ids = v[DISCORD_IDS]
|
32
34
|
return Account.new(k, chain) if !!ids && ids.include?(discord_id)
|
@@ -38,7 +40,7 @@ module Cosgrove
|
|
38
40
|
def self.find_by_memo_key(memo_key, secure, chain = :steem)
|
39
41
|
Account.yml[chain.to_s].each do |k, v|
|
40
42
|
v[DISCORD_IDS].each do |discord_id|
|
41
|
-
return Account.new(k, chain) if Account.gen_memo_key(k, discord_id,
|
43
|
+
return Account.new(k, chain) if Account.gen_memo_key(k, discord_id, secure, chain) == memo_key
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
@@ -75,9 +77,12 @@ module Cosgrove
|
|
75
77
|
end
|
76
78
|
|
77
79
|
def chain_account
|
80
|
+
return @chain_account if !!@chain_account
|
81
|
+
|
78
82
|
if !!@account_name
|
79
|
-
|
80
|
-
|
83
|
+
api(@chain).get_accounts([@account_name]) do |accounts, errors|
|
84
|
+
@chain_account = accounts.first
|
85
|
+
end
|
81
86
|
end
|
82
87
|
end
|
83
88
|
private
|
data/lib/cosgrove/bot.rb
CHANGED
@@ -58,6 +58,7 @@ module Cosgrove
|
|
58
58
|
|
59
59
|
self.command :verify do |event, key, chain = :steem|
|
60
60
|
return if event.channel.pm? && !cosgrove_allow_pm_commands
|
61
|
+
cb_account = nil
|
61
62
|
|
62
63
|
mongo_behind_warning(event)
|
63
64
|
if key.nil?
|
@@ -72,12 +73,10 @@ module Cosgrove
|
|
72
73
|
else
|
73
74
|
discord_id = key.split('@').last.split('>').first.to_i
|
74
75
|
cb_account = Cosgrove::Account.find_by_discord_id(discord_id, chain)
|
75
|
-
|
76
|
-
account = if !!cb_account
|
77
|
-
find_account(cb_account.account_name, event)
|
78
|
-
end
|
79
76
|
end
|
80
77
|
|
78
|
+
account = cb_account.chain_account if account.nil? && !!cb_account
|
79
|
+
|
81
80
|
if !!account && !!cb_account && cb_account.discord_ids.any?
|
82
81
|
if cb_account.hidden?
|
83
82
|
"#{chain.to_s.upcase} account `#{account.name}` has been registered."
|
@@ -99,10 +98,19 @@ module Cosgrove
|
|
99
98
|
return if event.channel.pm? && !cosgrove_allow_pm_commands
|
100
99
|
|
101
100
|
mongo_behind_warning(event)
|
102
|
-
account = find_account(account_name, event)
|
103
101
|
discord_id = event.author.id
|
104
102
|
|
105
|
-
|
103
|
+
if discord_id.to_i == 0
|
104
|
+
event.respond 'Problem with discord id.'
|
105
|
+
return
|
106
|
+
end
|
107
|
+
|
108
|
+
account = find_account(account_name, event, chain)
|
109
|
+
|
110
|
+
if account.nil?
|
111
|
+
event.respond 'Try again later.'
|
112
|
+
return
|
113
|
+
end
|
106
114
|
|
107
115
|
cb_account = Cosgrove::Account.new(account.name, chain)
|
108
116
|
|
@@ -112,26 +120,7 @@ module Cosgrove
|
|
112
120
|
end
|
113
121
|
|
114
122
|
memo_key = cb_account.memo_key(discord_id)
|
115
|
-
op =
|
116
|
-
where(account: steem_account, from: account.name, to: steem_account, memo: {'$regex' => ".*#{memo_key}.*"}).last
|
117
|
-
|
118
|
-
if op.nil?
|
119
|
-
# Fall back to RPC. The transaction is so new, SteemData hasn't seen it
|
120
|
-
# yet, SteemData is behind, or there is no such transfer.
|
121
|
-
|
122
|
-
response = api(chain).get_account_history(steem_account, -1000, 1000)
|
123
|
-
op = response.result.map do |history|
|
124
|
-
e = history.last.op
|
125
|
-
type = e.first
|
126
|
-
next unless type == 'transfer'
|
127
|
-
o = e.last
|
128
|
-
next unless o.from == account.name
|
129
|
-
next unless o.to == steem_account
|
130
|
-
next unless o.memo =~ /.*#{memo_key}.*/
|
131
|
-
|
132
|
-
o
|
133
|
-
end.compact.last
|
134
|
-
end
|
123
|
+
op = find_transfer(chain: chain, account: steem_account, from: account.name, to: steem_account, memo_key: memo_key)
|
135
124
|
|
136
125
|
if !!op
|
137
126
|
cb_account.add_discord_id(discord_id)
|
data/lib/cosgrove/comment_job.rb
CHANGED
@@ -6,23 +6,15 @@ module Cosgrove
|
|
6
6
|
include Support
|
7
7
|
|
8
8
|
def perform(event, slug, template, message = nil)
|
9
|
+
chain = :steem
|
9
10
|
author_name, permlink = parse_slug slug
|
10
|
-
muted = muted by: steem_account, chain:
|
11
|
+
muted = muted by: steem_account, chain: chain
|
11
12
|
|
12
|
-
|
13
|
+
author = find_author(chain: chain, author_name: author_name)
|
13
14
|
|
14
|
-
|
15
|
-
author = SteemData::Account.find_by(name: author_name)
|
15
|
+
return if author.nil?
|
16
16
|
|
17
|
-
|
18
|
-
# Fall back to RPC
|
19
|
-
response = api(:steem).get_content(author_name, permlink)
|
20
|
-
unless response.result.author.empty?
|
21
|
-
post = response.result
|
22
|
-
created = Time.parse(post.created + 'Z')
|
23
|
-
cashout_time = Time.parse(post.cashout_time + 'Z')
|
24
|
-
end
|
25
|
-
end
|
17
|
+
post = find_comment(chain: chain, author: author_name, permlink: permlink)
|
26
18
|
|
27
19
|
if post.nil?
|
28
20
|
cannot_find_input(event)
|
@@ -32,6 +24,11 @@ module Cosgrove
|
|
32
24
|
created ||= post.created
|
33
25
|
cashout_time ||= post.cashout_time
|
34
26
|
|
27
|
+
if created.class == String
|
28
|
+
created = Time.parse(created + 'Z')
|
29
|
+
cashout_time = Time.parse(cashout_time + 'Z')
|
30
|
+
end
|
31
|
+
|
35
32
|
nope = if post.nil?
|
36
33
|
"Sorry, couldn't find that."
|
37
34
|
elsif cashout_time < Time.now.utc
|
@@ -53,7 +50,7 @@ module Cosgrove
|
|
53
50
|
'Unable to vote.'
|
54
51
|
# elsif template == :welcome && author.post_count != 1
|
55
52
|
# 'Sorry, this function is intended to welcome new authors.'
|
56
|
-
elsif
|
53
|
+
elsif find_comment(chain: :steem, author: steem_account, parent_permlink: post.permlink).any?
|
57
54
|
title = post.title
|
58
55
|
title = post.permlink if title.empty?
|
59
56
|
"I already commented on #{title} by #{post.author}."
|