appending 1.4.2 → 1.4.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/appending.rb +48 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22c3a4eaaa1fb0b5d2f95e36c66dbb16da5423f6f3ff7ea31373d5e6deaf7911
|
4
|
+
data.tar.gz: af05a378cc68d44b8c2053eb23a0d707f1d4ed36b873b6efd3ef54d067bdaf08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a1ac36820492dde1d8bb15d9b90d4738e72358b9a87caafa3570ad150aafc61fe0de7242a84ad047684f12dee31c7c8776d8b660f8febf4c8f94c7a064f2189
|
7
|
+
data.tar.gz: 11a6f6df6f7d6afeeec8d1969a17316536e3a1e1ad213068a5e8b0470abb1fb3f78c41818d11db92d67f8e24724d4d3943185a4e7e104bebdfcf7d82d7c1f0a9
|
data/lib/appending.rb
CHANGED
@@ -14,6 +14,9 @@ module BlackStack
|
|
14
14
|
@@phone_fields = []
|
15
15
|
@@company_domain_fields = []
|
16
16
|
|
17
|
+
@@zerobounce_api_key = nil
|
18
|
+
@@emailverify_api_key = nil
|
19
|
+
|
17
20
|
## @@logger
|
18
21
|
def self.set_logger(logger)
|
19
22
|
@@logger = logger
|
@@ -162,6 +165,45 @@ module BlackStack
|
|
162
165
|
@@email_fields = h[:email_fields] if h[:email_fields]
|
163
166
|
@@phone_fields = h[:phone_fields] if h[:phone_fields]
|
164
167
|
@@company_domain_fields = h[:company_domain_fields] if h[:company_domain_fields]
|
168
|
+
|
169
|
+
# zerobounce api key
|
170
|
+
@@zerobounce_api_key = h[:zerobounce_api_key] if h[:zerobounce_api_key]
|
171
|
+
|
172
|
+
# emailverify api key
|
173
|
+
@@emailverify_api_key = h[:emailverify_api_key] if h[:emailverify_api_key]
|
174
|
+
end
|
175
|
+
|
176
|
+
# call zerobounce api
|
177
|
+
def self.zerobounce_verify(email)
|
178
|
+
# validation: email must be a string
|
179
|
+
raise "Invalid email: #{email.class}. Expected: String." if !email.is_a?(String)
|
180
|
+
url = "https://api.zerobounce.net/v2/validate"
|
181
|
+
params = {
|
182
|
+
:api_key => @@zerobounce_api_key,
|
183
|
+
:email => email,
|
184
|
+
:ip_address => nil,
|
185
|
+
}
|
186
|
+
res = BlackStack::Netting::call_get(url, params)
|
187
|
+
JSON.parse(res.body)
|
188
|
+
end
|
189
|
+
|
190
|
+
# call emailverify api to verify an email
|
191
|
+
# reutrn 'ok' if the email is valid
|
192
|
+
def self.emailverify_verify(email)
|
193
|
+
# validation: email must be a string
|
194
|
+
raise "Invalid email: #{email.class}. Expected: String." if !email.is_a?(String)
|
195
|
+
url = "https://apps.emaillistverify.com/api/verifEmail"
|
196
|
+
params = {
|
197
|
+
:secret => @@emailverify_api_key,
|
198
|
+
:email => email,
|
199
|
+
}
|
200
|
+
res = BlackStack::Netting::call_get(url, params)
|
201
|
+
res.body
|
202
|
+
end
|
203
|
+
|
204
|
+
# call emailverify api to ask if there are credits
|
205
|
+
def self.emailverify_credits?
|
206
|
+
BlackStack::Appending.emailverify_verify('x') == 'error_credit'
|
165
207
|
end
|
166
208
|
|
167
209
|
# return true if the domain get any random address as valid
|
@@ -337,6 +379,8 @@ module BlackStack
|
|
337
379
|
emails = []
|
338
380
|
domains = []
|
339
381
|
verified_emails = []
|
382
|
+
#
|
383
|
+
return verified_emails if cname =~ /Self.*employed/i
|
340
384
|
# get lead emails from in the indexes
|
341
385
|
l.logs ("Searching index emails... ")
|
342
386
|
emails = BlackStack::Appending.find_persons(fname, lname, cname, l).map { |res|
|
@@ -345,6 +389,7 @@ module BlackStack
|
|
345
389
|
email.to_s.empty?
|
346
390
|
}.uniq
|
347
391
|
# remove duplications
|
392
|
+
# IMPORTANT: be sure you have no spances, and no duplications, in order to don't repeat this issue https://github.com/leandrosardi/emails/issues/124
|
348
393
|
emails = emails.map { |email| email.to_s.downcase.strip }.uniq
|
349
394
|
l.logf "done (#{emails.to_s})"
|
350
395
|
# get company domains from the indexes
|
@@ -358,6 +403,7 @@ module BlackStack
|
|
358
403
|
domain.to_s.gsub('www.', '').downcase
|
359
404
|
}.uniq
|
360
405
|
# remove duplications
|
406
|
+
# IMPORTANT: be sure you have no spances, and no duplications, in order to don't repeat this issue https://github.com/leandrosardi/emails/issues/124
|
361
407
|
domains = domains.map { |domain| domain.to_s.downcase.strip }.uniq
|
362
408
|
l.logf "done (#{domains.to_s})"
|
363
409
|
# add emails using fname and lname and company domains
|
@@ -389,10 +435,12 @@ module BlackStack
|
|
389
435
|
l.logs "Verifying #{email}... "
|
390
436
|
verified_emails << email if BlackStack::Appending.verify(email)
|
391
437
|
l.done
|
438
|
+
# IMPORTANT: I added this line in order to resolve this issue https://github.com/leandrosardi/emails/issues/124
|
392
439
|
break if verified_emails.size > 0
|
393
440
|
}
|
394
441
|
l.done
|
395
442
|
# verify all the emails found in the indexes
|
443
|
+
# IMPORTANT: I added this double-check in order to don't repeat this issue https://github.com/leandrosardi/emails/issues/124
|
396
444
|
l.logs ("Double check emails... ")
|
397
445
|
verified_emails.each { |email|
|
398
446
|
l.logs "Double-checking #{email}... "
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appending
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leandro Daniel Sardi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: csv
|