email_data 1606953034 → 1607451152.0.0
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/.github/FUNDING.yml +1 -2
- data/.github/workflows/package.yml +49 -0
- data/.github/workflows/ruby-tests.yml +1 -0
- data/.gitignore +21 -0
- data/Gemfile.lock +25 -5
- data/README.md +20 -0
- data/Rakefile +10 -3
- data/VERSION +1 -1
- data/bin/helpers.rb +4 -4
- data/bin/publish +6 -16
- data/bin/sync +4 -0
- data/bin/sync-disposable-emails +1 -2
- data/data/disposable_domains.txt +12 -0
- data/data/disposable_domains_with_mx.txt +19363 -0
- data/data/disposable_domains_without_mx.txt +97387 -0
- data/email_data.gemspec +1 -0
- data/lib/email_data.rb +2 -0
- data/lib/email_data/source/active_record.rb +17 -0
- data/lib/email_data/source/file_system.rb +10 -0
- data/lib/email_data/version.rb +1 -1
- data/package.json +16 -16
- metadata +29 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89381199ce9fc0ce6b2225859c6a56c1d19d9f14b40a34336338496ec329d863
|
4
|
+
data.tar.gz: 99e477c5defe2db3e315c469e618aec6457325647e917cd26e75222c5fc85a72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 972383b4880ce8606e99d8fb5b692a837252b9e3e49cca6d4575adc6f63f5274531ddc8b38679dd440dad96ea7febd86da9ce2ae74ee46fb0004a6fb02c86070
|
7
|
+
data.tar.gz: 1497fae6634c404c45e15ae27a0c022ec84e8a8364def4325d5350265f371a6437b7abfea42c836e4586e76d82820254876837f03ee461e11bda1cbbeadd9a6f
|
data/.github/FUNDING.yml
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
name: package
|
3
|
+
|
4
|
+
on:
|
5
|
+
schedule:
|
6
|
+
- cron: "0 0 * * *"
|
7
|
+
workflow_dispatch:
|
8
|
+
inputs: {}
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
build:
|
12
|
+
name: Export with Ruby ${{ matrix.ruby }}
|
13
|
+
runs-on: "ubuntu-latest"
|
14
|
+
strategy:
|
15
|
+
fail-fast: false
|
16
|
+
matrix:
|
17
|
+
ruby: ["2.7.x"]
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v2.3.4
|
21
|
+
|
22
|
+
- uses: actions/cache@v2
|
23
|
+
with:
|
24
|
+
path: vendor/bundle
|
25
|
+
key: >
|
26
|
+
${{ runner.os }}-${{ matrix.ruby }}-gems-${{
|
27
|
+
hashFiles('**/*.gemspec') }}
|
28
|
+
restore-keys: >
|
29
|
+
${{ runner.os }}-${{ matrix.ruby }}-gems-${{
|
30
|
+
hashFiles('**/*.gemspec') }}
|
31
|
+
|
32
|
+
- name: Set up Ruby
|
33
|
+
uses: actions/setup-ruby@v1
|
34
|
+
with:
|
35
|
+
ruby-version: ${{ matrix.ruby }}
|
36
|
+
|
37
|
+
- name: Install gem dependencies
|
38
|
+
run: |
|
39
|
+
gem install bundler
|
40
|
+
bundle config path vendor/bundle
|
41
|
+
bundle install --jobs 4 --retry 3
|
42
|
+
|
43
|
+
- name: Export files
|
44
|
+
env:
|
45
|
+
GITHUB_TOKEN: "${{ secrets.GH_TOKEN }}"
|
46
|
+
RUBYGEMS_API_KEY: "${{ secrets.RUBYGEMS_API_KEY }}"
|
47
|
+
NPM_AUTH_TOKEN: "${{ secrets.NPM_AUTH_TOKEN }}"
|
48
|
+
run: |
|
49
|
+
./bin/package
|
data/.gitignore
CHANGED
@@ -9,3 +9,24 @@
|
|
9
9
|
/data/disposable/**/*
|
10
10
|
/data/json/**/*
|
11
11
|
LOCK
|
12
|
+
bin/jq
|
13
|
+
opt/
|
14
|
+
vendor/
|
15
|
+
pkg/
|
16
|
+
VERSION
|
17
|
+
.DS_Store
|
18
|
+
.*.sw?
|
19
|
+
/.pow*
|
20
|
+
/.rvmrc
|
21
|
+
/.rbenv-version
|
22
|
+
/bin/
|
23
|
+
/.tags*
|
24
|
+
Thumbs.db
|
25
|
+
.vagrant
|
26
|
+
.bash/user.sh
|
27
|
+
.gemtags
|
28
|
+
.tags
|
29
|
+
.tags_sorted_by_file
|
30
|
+
/node_modules
|
31
|
+
/.env
|
32
|
+
/.env.*
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
email_data (
|
4
|
+
email_data (1607309899)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -20,10 +20,14 @@ GEM
|
|
20
20
|
aitch (1.1.0)
|
21
21
|
nokogiri
|
22
22
|
ast (2.4.1)
|
23
|
+
awesome_print (1.8.0)
|
24
|
+
byebug (11.1.3)
|
25
|
+
coderay (1.1.3)
|
23
26
|
concurrent-ruby (1.1.7)
|
24
27
|
docile (1.3.2)
|
25
28
|
i18n (1.8.5)
|
26
29
|
concurrent-ruby (~> 1.0)
|
30
|
+
method_source (1.0.0)
|
27
31
|
mini_portile2 (2.4.0)
|
28
32
|
minitest (5.14.2)
|
29
33
|
minitest-utils (0.4.6)
|
@@ -34,6 +38,20 @@ GEM
|
|
34
38
|
parser (2.7.2.0)
|
35
39
|
ast (~> 2.4.1)
|
36
40
|
pg (1.2.3)
|
41
|
+
pry (0.13.1)
|
42
|
+
coderay (~> 1.1)
|
43
|
+
method_source (~> 1.0)
|
44
|
+
pry-byebug (3.9.0)
|
45
|
+
byebug (~> 11.0)
|
46
|
+
pry (~> 0.13.0)
|
47
|
+
pry-meta (0.0.10)
|
48
|
+
awesome_print
|
49
|
+
pry
|
50
|
+
pry-byebug
|
51
|
+
pry-remote
|
52
|
+
pry-remote (0.1.8)
|
53
|
+
pry (~> 0.9)
|
54
|
+
slop (~> 3.0)
|
37
55
|
rainbow (3.0.0)
|
38
56
|
rake (13.0.1)
|
39
57
|
regexp_parser (2.0.0)
|
@@ -41,18 +59,18 @@ GEM
|
|
41
59
|
root_domain (0.1.2)
|
42
60
|
email_data
|
43
61
|
simpleidn
|
44
|
-
rubocop (1.5.
|
62
|
+
rubocop (1.5.2)
|
45
63
|
parallel (~> 1.10)
|
46
64
|
parser (>= 2.7.1.5)
|
47
65
|
rainbow (>= 2.2.2, < 4.0)
|
48
|
-
regexp_parser (>=
|
66
|
+
regexp_parser (>= 1.8, < 3.0)
|
49
67
|
rexml
|
50
|
-
rubocop-ast (>= 1.2.0)
|
68
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
51
69
|
ruby-progressbar (~> 1.7)
|
52
70
|
unicode-display_width (>= 1.4.0, < 2.0)
|
53
71
|
rubocop-ast (1.3.0)
|
54
72
|
parser (>= 2.7.1.5)
|
55
|
-
rubocop-fnando (0.0.
|
73
|
+
rubocop-fnando (0.0.15)
|
56
74
|
rubocop
|
57
75
|
rubocop-performance
|
58
76
|
rubocop-performance (1.9.1)
|
@@ -67,6 +85,7 @@ GEM
|
|
67
85
|
simplecov_json_formatter (0.1.2)
|
68
86
|
simpleidn (0.1.1)
|
69
87
|
unf (~> 0.1.4)
|
88
|
+
slop (3.6.0)
|
70
89
|
thread_safe (0.3.6)
|
71
90
|
tzinfo (1.2.8)
|
72
91
|
thread_safe (~> 0.1)
|
@@ -87,6 +106,7 @@ DEPENDENCIES
|
|
87
106
|
minitest
|
88
107
|
minitest-utils
|
89
108
|
pg
|
109
|
+
pry-meta
|
90
110
|
rake
|
91
111
|
root_domain
|
92
112
|
rubocop
|
data/README.md
CHANGED
@@ -41,6 +41,8 @@ EmailData.data_dir
|
|
41
41
|
|
42
42
|
# List of disposable domains. Punycode is expanded into ASCII domains.
|
43
43
|
EmailData.disposable_domains
|
44
|
+
EmailData.disposable_domains_with_mx
|
45
|
+
EmailData.disposable_domains_without_mx
|
44
46
|
|
45
47
|
# List of disposable emails. Some services use free email like Gmail to create
|
46
48
|
# disposable emails.
|
@@ -127,6 +129,18 @@ class SetupEmailData < ActiveRecord::Migration[6.1]
|
|
127
129
|
|
128
130
|
add_index :disposable_domains, :name, unique: true
|
129
131
|
|
132
|
+
create_table :disposable_domains_with_mx do |t|
|
133
|
+
t.citext :name, null: false
|
134
|
+
end
|
135
|
+
|
136
|
+
add_index :disposable_domains_with_mx, :name, unique: true
|
137
|
+
|
138
|
+
create_table :disposable_domains_without_mx do |t|
|
139
|
+
t.citext :name, null: false
|
140
|
+
end
|
141
|
+
|
142
|
+
add_index :disposable_domains_without_mx, :name, unique: true
|
143
|
+
|
130
144
|
create_table :free_email_domains do |t|
|
131
145
|
t.citext :name, null: false
|
132
146
|
end
|
@@ -176,6 +190,8 @@ COPY slds (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data
|
|
176
190
|
COPY country_tlds (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/country_tlds.txt';
|
177
191
|
COPY disposable_emails (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_emails.txt';
|
178
192
|
COPY disposable_domains (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_domains.txt';
|
193
|
+
COPY disposable_domains_with_mx (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_domains_with_mx.txt';
|
194
|
+
COPY disposable_domains_without_mx (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_domains_without_mx.txt';
|
179
195
|
COPY free_email_domains (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/free_email_domains.txt';
|
180
196
|
COPY roles (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/roles.txt';
|
181
197
|
COPY private_relays (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/private_relays.txt';
|
@@ -204,6 +220,8 @@ class LoadEmailData < ActiveRecord::Migration[6.1]
|
|
204
220
|
copy.call(:country_tlds)
|
205
221
|
copy.call(:disposable_emails)
|
206
222
|
copy.call(:disposable_domains)
|
223
|
+
copy.call(:disposable_domains_with_mx)
|
224
|
+
copy.call(:disposable_domains_without_mx)
|
207
225
|
copy.call(:free_email_domains)
|
208
226
|
copy.call(:roles)
|
209
227
|
copy.call(:private_relays)
|
@@ -230,6 +248,8 @@ $ npm install @fnando/email_data
|
|
230
248
|
```js
|
231
249
|
const disposableEmails = require("@fnando/email_data/data/json/disposable_emails.json");
|
232
250
|
const disposableDomains = require("@fnando/email_data/data/json/disposable_domains.json");
|
251
|
+
const disposableDomainsWithMx = require("@fnando/email_data/data/json/disposable_domains_with_mx.json");
|
252
|
+
const disposableDomainsWithoutMx = require("@fnando/email_data/data/json/disposable_domains_without_mx.json");
|
233
253
|
const freeEmailDomains = require("@fnando/email_data/data/json/free_email_domains.json");
|
234
254
|
const roles = require("@fnando/email_data/data/json/roles.json");
|
235
255
|
const privateRelays = require("@fnando/email_data/data/json/private_relays.json");
|
data/Rakefile
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
require "rake/testtask"
|
5
|
-
|
5
|
+
|
6
|
+
all_tasks = %i[test]
|
6
7
|
|
7
8
|
Rake::TestTask.new(:test) do |t|
|
8
9
|
t.libs << "test"
|
@@ -10,6 +11,12 @@ Rake::TestTask.new(:test) do |t|
|
|
10
11
|
t.test_files = FileList["test/**/*_test.rb"]
|
11
12
|
end
|
12
13
|
|
13
|
-
|
14
|
+
begin
|
15
|
+
require "rubocop/rake_task"
|
16
|
+
RuboCop::RakeTask.new
|
17
|
+
all_tasks << "rubocop"
|
18
|
+
rescue LoadError
|
19
|
+
puts "=> Couldn't load Rubocop rake tasks"
|
20
|
+
end
|
14
21
|
|
15
|
-
task default:
|
22
|
+
task default: all_tasks
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
1607200035
|
data/bin/helpers.rb
CHANGED
@@ -106,9 +106,9 @@ def random_timeout
|
|
106
106
|
(1..10).map {|i| (1.0 / i).round(2) }.sample
|
107
107
|
end
|
108
108
|
|
109
|
-
def refresh_list(url:, path:, verb: :get, params: nil
|
109
|
+
def refresh_list(url:, path:, verb: :get, params: nil)
|
110
110
|
response = http_request(verb, url, params)
|
111
|
-
items =
|
111
|
+
items = yield(response)
|
112
112
|
append_to_file(path, items)
|
113
113
|
rescue StandardError => error
|
114
114
|
puts "=> [ERROR] Unable to refresh list: #{url} (#{error.class}: #{error.message})"
|
@@ -191,9 +191,9 @@ def root_domains(domains)
|
|
191
191
|
processed_domains.reject(&:nil?)
|
192
192
|
end
|
193
193
|
|
194
|
-
def thread
|
194
|
+
def thread
|
195
195
|
Thread.new do
|
196
|
-
|
196
|
+
yield
|
197
197
|
rescue StandardError => error
|
198
198
|
puts "=> [ERROR] Thread has errored; #{error.class}: #{error.message}"
|
199
199
|
end
|
data/bin/publish
CHANGED
@@ -8,17 +8,12 @@ source $HOME/.zsh/asdf.sh
|
|
8
8
|
lockfile=$(dirname $0)/../LOCK
|
9
9
|
|
10
10
|
if [[ -f "$lockfile" ]]; then
|
11
|
-
|
12
|
-
-message "Skipping script; repository is locked." \
|
13
|
-
-ignoreDnD \
|
14
|
-
-title "email_data" \
|
15
|
-
-group homebrew \
|
16
|
-
&> /dev/null
|
11
|
+
echo "Skipping script; repository is locked."
|
17
12
|
exit 1
|
18
13
|
fi
|
19
14
|
|
20
15
|
git reset --hard
|
21
|
-
git checkout
|
16
|
+
git checkout publish
|
22
17
|
git pull --rebase
|
23
18
|
git push
|
24
19
|
|
@@ -27,13 +22,8 @@ git push
|
|
27
22
|
git_status=$(git status 2> /dev/null | tr "\\n" " ")
|
28
23
|
|
29
24
|
if [[ "$git_status" =~ "nothing to commit" ]]; then
|
30
|
-
|
31
|
-
|
32
|
-
-ignoreDnD \
|
33
|
-
-title "email_data" \
|
34
|
-
-group homebrew \
|
35
|
-
&> /dev/null
|
36
|
-
exit 1
|
25
|
+
echo "No changes detected. Skipping new packages."
|
26
|
+
exit
|
37
27
|
fi
|
38
28
|
|
39
29
|
date "+%s" > VERSION
|
@@ -52,5 +42,5 @@ git add .
|
|
52
42
|
git commit -m "Bump up version."
|
53
43
|
git push
|
54
44
|
|
55
|
-
./bin/publish-gem
|
56
|
-
./bin/publish-npm
|
45
|
+
# ./bin/publish-gem
|
46
|
+
# ./bin/publish-npm
|
data/bin/sync
CHANGED
data/bin/sync-disposable-emails
CHANGED
@@ -130,7 +130,7 @@ def process_scraping(element, value_selector)
|
|
130
130
|
else
|
131
131
|
element.attributes.each do |_name, attr|
|
132
132
|
attr = attr.value.to_s
|
133
|
-
value = attr if attr
|
133
|
+
value = attr if attr&.match?(host_regex)
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
@@ -172,7 +172,6 @@ threads << thread { domain_scraping("itemp", "https://itemp.email", "select[name
|
|
172
172
|
threads << thread { domain_scraping("cs", "https://www.cs.email", "select[id=gm-host-select] option::text()") }
|
173
173
|
threads << thread { domain_scraping("tempmail", "https://tempmail.io/settings/", "select[id=domain] option::text()") }
|
174
174
|
threads << thread { domain_scraping("tempemail", "https://tempemail.co", "select[name=email_domain] option::text()") }
|
175
|
-
threads << thread { domain_scraping("tmail", "https://mytemp-email.com/", "a.domain-selector::text()") }
|
176
175
|
|
177
176
|
threads.each_slice(5) do |slice|
|
178
177
|
slice.each(&:join)
|
data/data/disposable_domains.txt
CHANGED
@@ -1455,6 +1455,7 @@
|
|
1455
1455
|
1hdbt.com
|
1456
1456
|
1hdd.site
|
1457
1457
|
1hdek9.us
|
1458
|
+
1heizi.com
|
1458
1459
|
1hermesbirkin0.com
|
1459
1460
|
1hi.info
|
1460
1461
|
1hmoxs72qd.cf
|
@@ -13341,6 +13342,7 @@ aspfitting.com
|
|
13341
13342
|
asphalt-9-legends.ru
|
13342
13343
|
aspiredoge.com
|
13343
13344
|
aspiringweb.net
|
13345
|
+
aspiringweb.org
|
13344
13346
|
asportsa.ru
|
13345
13347
|
asportscoach.app
|
13346
13348
|
aspotgmail.org
|
@@ -13844,6 +13846,7 @@ aussiematureclub.com
|
|
13844
13846
|
aussiepersonal.loan
|
13845
13847
|
aussiepersonal.loans
|
13846
13848
|
aussiesmut.com
|
13849
|
+
austbikemart.com
|
13847
13850
|
austimail.com
|
13848
13851
|
austinbell.name
|
13849
13852
|
austincar.club
|
@@ -20441,6 +20444,7 @@ brownetrading.net
|
|
20441
20444
|
brownetrading.org
|
20442
20445
|
browniesgoreng.com
|
20443
20446
|
brownieslumer.com
|
20447
|
+
brownindians.com
|
20444
20448
|
brownlandscapingutah.com
|
20445
20449
|
brownpelican.info
|
20446
20450
|
brownricecooker.com
|
@@ -47530,6 +47534,7 @@ hebagfu.tk
|
|
47530
47534
|
hebatmart.xyz
|
47531
47535
|
hebedbugremovalok.live
|
47532
47536
|
hebeos.online
|
47537
|
+
hebgsw.com
|
47533
47538
|
hebohdomino88.com
|
47534
47539
|
hebohpkv.design
|
47535
47540
|
hebohpkv2.com
|
@@ -48630,6 +48635,7 @@ hmmbswlt5ts.ga
|
|
48630
48635
|
hmmbswlt5ts.gq
|
48631
48636
|
hmmbswlt5ts.ml
|
48632
48637
|
hmmbswlt5ts.tk
|
48638
|
+
hmnmw.com
|
48633
48639
|
hmos.systems
|
48634
48640
|
hmotomotiv.xyz
|
48635
48641
|
hmsale.org
|
@@ -55719,6 +55725,7 @@ justonetworks.site
|
|
55719
55725
|
justpoleznoe.ru
|
55720
55726
|
justpositiveweblog.club
|
55721
55727
|
justrbonlinea.co.uk
|
55728
|
+
justre.codes
|
55722
55729
|
justreadit.ru
|
55723
55730
|
justruninabox.com
|
55724
55731
|
justsend.online
|
@@ -66247,6 +66254,7 @@ mendingme.net
|
|
66247
66254
|
mendoanmail.club
|
66248
66255
|
mendycady.com
|
66249
66256
|
menealacola.com
|
66257
|
+
menece.com
|
66250
66258
|
menflo.com
|
66251
66259
|
mengatur.com
|
66252
66260
|
mengchong.info
|
@@ -66785,6 +66793,7 @@ mhtqq.icu
|
|
66785
66793
|
mhwolf.net
|
66786
66794
|
mhxcpxbna.shop
|
66787
66795
|
mhzayt.com
|
66796
|
+
mhzayt.online
|
66788
66797
|
mi-fucker-ss.ru
|
66789
66798
|
mi-mails.com
|
66790
66799
|
mi-turisto.ru
|
@@ -80874,6 +80883,7 @@ premier-reverse.com
|
|
80874
80883
|
premierbetcasino.com
|
80875
80884
|
premierbetsuper6.com
|
80876
80885
|
premierclosing.com
|
80886
|
+
premiere.ee
|
80877
80887
|
premiereatlantarealestate.com
|
80878
80888
|
premierelivecasino.com
|
80879
80889
|
premierloto.info
|
@@ -93328,6 +93338,7 @@ somsupport.xyz
|
|
93328
93338
|
son-haber.live
|
93329
93339
|
son-haber.site
|
93330
93340
|
son-haber.website
|
93341
|
+
son16.com
|
93331
93342
|
sonaluma.com
|
93332
93343
|
sonamyr.shop
|
93333
93344
|
sonasoft.net
|
@@ -104535,6 +104546,7 @@ uphonni.ru
|
|
104535
104546
|
upimage.net
|
104536
104547
|
upimail.com
|
104537
104548
|
upived.com
|
104549
|
+
upived.online
|
104538
104550
|
upizzatakeaway.com
|
104539
104551
|
upl0adand1nsta11.com
|
104540
104552
|
uplay-store.ru
|