fakefilter 1.1.13 → 1.1.1581

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.
Files changed (274) hide show
  1. package/LICENSE.md +29 -0
  2. package/README.md +66 -16
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.js +220 -0
  5. package/dist/json/data.json +1 -0
  6. package/dist/types.d.ts +16 -0
  7. package/dist/types.js +3 -0
  8. package/package.json +36 -42
  9. package/apiserver/api/ext_result.js +0 -51
  10. package/apiserver/api/ext_tasks.js +0 -151
  11. package/apiserver/api/is_fakedomain.js +0 -39
  12. package/apiserver/api/is_fakeemail.js +0 -17
  13. package/apiserver/api/ping.js +0 -12
  14. package/apiserver/docs/README.md +0 -41
  15. package/apiserver/docs/babel.config.js +0 -3
  16. package/apiserver/docs/blog/2019-05-28-first-blog-post.md +0 -12
  17. package/apiserver/docs/blog/2019-05-29-long-blog-post.md +0 -44
  18. package/apiserver/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -20
  19. package/apiserver/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  20. package/apiserver/docs/blog/2021-08-26-welcome/index.md +0 -25
  21. package/apiserver/docs/blog/authors.yml +0 -17
  22. package/apiserver/docs/docs/intro.md +0 -16
  23. package/apiserver/docs/docs/nodejs/_category_.json +0 -4
  24. package/apiserver/docs/docs/nodejs/index.md +0 -30
  25. package/apiserver/docs/docs/restful/_category_.json +0 -4
  26. package/apiserver/docs/docs/restful/index.md +0 -59
  27. package/apiserver/docs/docusaurus.config.js +0 -118
  28. package/apiserver/docs/package.json +0 -37
  29. package/apiserver/docs/sidebars.js +0 -31
  30. package/apiserver/docs/src/components/HomepageFeatures/index.js +0 -64
  31. package/apiserver/docs/src/components/HomepageFeatures/styles.module.css +0 -11
  32. package/apiserver/docs/src/css/custom.css +0 -39
  33. package/apiserver/docs/src/pages/index.js +0 -45
  34. package/apiserver/docs/src/pages/index.module.css +0 -23
  35. package/apiserver/docs/src/pages/markdown-page.md +0 -7
  36. package/apiserver/docs/src/theme/IconArrow/index.js +0 -10
  37. package/apiserver/docs/static/.nojekyll +0 -0
  38. package/apiserver/docs/static/img/docusaurus.png +0 -0
  39. package/apiserver/docs/static/img/favicon.ico +0 -0
  40. package/apiserver/docs/static/img/logo.svg +0 -1
  41. package/apiserver/docs/static/img/tutorial/docsVersionDropdown.png +0 -0
  42. package/apiserver/docs/static/img/tutorial/localeDropdown.png +0 -0
  43. package/apiserver/docs/static/img/undraw_docusaurus_mountain.svg +0 -171
  44. package/apiserver/docs/static/img/undraw_docusaurus_react.svg +0 -170
  45. package/apiserver/docs/static/img/undraw_docusaurus_tree.svg +0 -40
  46. package/apiserver/inc/middleware_client.js +0 -37
  47. package/apiserver/inc/middleware_logging.js +0 -17
  48. package/apiserver/inc/shared.js +0 -47
  49. package/apiserver/inc/worker_fakefilter.js +0 -53
  50. package/apiserver/index.js +0 -62
  51. package/apiserver/public/10minemail.com.js +0 -27
  52. package/apiserver/public/10minuteemails.com.js +0 -46
  53. package/apiserver/public/10minutemail.com.js +0 -29
  54. package/apiserver/public/crazymailing.com.js +0 -27
  55. package/apiserver/public/gettempmail.com.js +0 -39
  56. package/apiserver/public/img/dynamic/README.md +0 -0
  57. package/apiserver/public/img/test.html +0 -48
  58. package/apiserver/public/onetempmail.com.js +0 -35
  59. package/apiserver/public/shared.js +0 -54
  60. package/apiserver/public/temp-mail.org.js +0 -28
  61. package/apiserver/public/tempmail.com.tr.js +0 -36
  62. package/apiserver/public/tempmail.net.js +0 -28
  63. package/apiserver/public/tempmailid.com.js +0 -40
  64. package/apiserver/public/tempmailo.org.js +0 -36
  65. package/apiserver/public/throwawaymail.com.js +0 -27
  66. package/burner/README.md +0 -1
  67. package/burner/burner-check.js +0 -57
  68. package/burner/emails.txt +0 -57106
  69. package/chart-update.js +0 -261
  70. package/cleanup.js +0 -58
  71. package/config.js +0 -126
  72. package/demos/visitor0/index.js +0 -41
  73. package/demos/visitor0/renderedDOM.html +0 -8
  74. package/elements/demo.js +0 -78
  75. package/elements/renderedDOM.html +0 -6459
  76. package/elements/screenshots/afterclick.png +0 -0
  77. package/elements/screenshots/goto.png +0 -0
  78. package/events.js +0 -59
  79. package/fetch.js +0 -180
  80. package/models/events.js +0 -37
  81. package/models/harvested.js +0 -45
  82. package/models/harvested_clone.js +0 -44
  83. package/providers/10-minute-mail.com.js +0 -39
  84. package/providers/10-minuten-mail.de.js +0 -39
  85. package/providers/10mails.net.js +0 -41
  86. package/providers/10minut.com.pl.js +0 -39
  87. package/providers/10minut.xyz.js +0 -40
  88. package/providers/10minuteemails.com.js +0 -39
  89. package/providers/10minutemail.co.za.js +0 -39
  90. package/providers/10minutemail.com.js +0 -39
  91. package/providers/10minutemail.info.js +0 -38
  92. package/providers/10minutemail.net.js +0 -38
  93. package/providers/10minutemail.org.js +0 -38
  94. package/providers/10minutesemail.net.js +0 -36
  95. package/providers/10minutesmail.us.js +0 -39
  96. package/providers/1secmail.com.js +0 -39
  97. package/providers/20minutemail.com.js +0 -36
  98. package/providers/22.do.js +0 -25
  99. package/providers/24hour.email.js +0 -37
  100. package/providers/___emailondeck.com.js +0 -76
  101. package/providers/abandonmail.com.js +0 -39
  102. package/providers/airmailbox.website.js +0 -38
  103. package/providers/akmail.in.js +0 -37
  104. package/providers/altaddress.org.js +0 -50
  105. package/providers/altmails.com.js +0 -37
  106. package/providers/anonbox.net.js +0 -42
  107. package/providers/anonmails.de.js +0 -25
  108. package/providers/anonymmail.net.js +0 -47
  109. package/providers/another-temp-mail.com.js +0 -40
  110. package/providers/awgarstone.com.js +0 -15
  111. package/providers/brodilla.email.js +0 -45
  112. package/providers/byom.de.js +0 -42
  113. package/providers/chacuo.net.js +0 -38
  114. package/providers/cryptogmail.com.js +0 -40
  115. package/providers/default.tmail.thehp.in.js +0 -41
  116. package/providers/developermail.com.js +0 -39
  117. package/providers/dispemail.com.js +0 -38
  118. package/providers/disposableemail.co.js +0 -37
  119. package/providers/disposableemail.us.js +0 -37
  120. package/providers/disposablemail.com.js +0 -38
  121. package/providers/disposeamail.com.js +0 -43
  122. package/providers/dispostable.com.js +0 -39
  123. package/providers/dodsi.com.js +0 -38
  124. package/providers/dropmail.me.js +0 -37
  125. package/providers/easytrashmail.com.js +0 -33
  126. package/providers/edumail.icu.js +0 -36
  127. package/providers/email-fake.com.js +0 -35
  128. package/providers/emailfake.com.js +0 -35
  129. package/providers/emailnator.com.js +0 -37
  130. package/providers/etempmail.com.js +0 -36
  131. package/providers/etempmail.net.js +0 -37
  132. package/providers/eyepaste.com.js +0 -39
  133. package/providers/fakemail.io.js +0 -36
  134. package/providers/fakemail.net.js +0 -35
  135. package/providers/fakemailgenerator.com.js +0 -35
  136. package/providers/fakermail.com.js +0 -37
  137. package/providers/faxmail.co.js +0 -47
  138. package/providers/fex.plus.js +0 -38
  139. package/providers/findtempmail.com.js +0 -39
  140. package/providers/foxiomail.com.js +0 -42
  141. package/providers/fyii.de.js +0 -42
  142. package/providers/gecicimail.co.js +0 -14
  143. package/providers/gecicimail.com.tr.js +0 -15
  144. package/providers/generator.email.js +0 -37
  145. package/providers/getnada.cc.js +0 -37
  146. package/providers/getnada.com.js +0 -37
  147. package/providers/gmailcity.com.js +0 -37
  148. package/providers/gpa.lu.js +0 -37
  149. package/providers/guerrillamail.com.js +0 -38
  150. package/providers/harakirimail.com.js +0 -38
  151. package/providers/haribu.net.js +0 -39
  152. package/providers/hizli.email.js +0 -40
  153. package/providers/hottempmail.com.js +0 -52
  154. package/providers/instant-email.org.js +0 -39
  155. package/providers/instantemailaddress.com.js +0 -40
  156. package/providers/internxt.com.js +0 -47
  157. package/providers/jooko.info.js +0 -37
  158. package/providers/kopeechka.store.js +0 -43
  159. package/providers/kuku.lu.js +0 -37
  160. package/providers/linshi-email.com.js +0 -38
  161. package/providers/linshiyou.com.js +0 -25
  162. package/providers/linshiyouxiang.net.js +0 -36
  163. package/providers/lroid.com.js +0 -35
  164. package/providers/luxusmail.org.js +0 -39
  165. package/providers/mail-temp.com.js +0 -37
  166. package/providers/mail-tester.com.js +0 -37
  167. package/providers/mail.gen.tr.js +0 -14
  168. package/providers/mail.gw.js +0 -35
  169. package/providers/mail.td.js +0 -42
  170. package/providers/mail.tm.js +0 -35
  171. package/providers/mail1.js +0 -44
  172. package/providers/mail1a.de.js +0 -42
  173. package/providers/mail4qa.com.js +0 -37
  174. package/providers/mail7.io.js +0 -41
  175. package/providers/mailcatch.com.js +0 -38
  176. package/providers/maildim.com.js +0 -38
  177. package/providers/maildrop.cc.js +0 -38
  178. package/providers/mailinator.com.js +0 -27
  179. package/providers/mailnesia.com.js +0 -41
  180. package/providers/mailpoof.com.js +0 -71
  181. package/providers/mailsac.com.js +0 -27
  182. package/providers/mailswipe.net.js +0 -37
  183. package/providers/minimail.eu.org.js +0 -27
  184. package/providers/mintemail.com.js +0 -49
  185. package/providers/minuteinbox.com.js +0 -35
  186. package/providers/moakt.com.js +0 -37
  187. package/providers/mohmal.com.js +0 -39
  188. package/providers/muellmail.com.js +0 -40
  189. package/providers/mytemp.email.js +0 -35
  190. package/providers/mytrashmailer.com.js +0 -38
  191. package/providers/niepodam.pl.js +0 -53
  192. package/providers/nolog.email.js +0 -38
  193. package/providers/onetempmail.com.js +0 -37
  194. package/providers/open.js +0 -41
  195. package/providers/oxyemail.com.js +0 -38
  196. package/providers/phaantm.de.js +0 -42
  197. package/providers/poo.email.js +0 -27
  198. package/providers/sandvpn.com.js +0 -49
  199. package/providers/shitmail.me.js +0 -38
  200. package/providers/shitmail.org.js +0 -38
  201. package/providers/snapmail.cc.js +0 -42
  202. package/providers/spamdecoy.net.js +0 -38
  203. package/providers/spamgourmet.com.js +0 -29
  204. package/providers/spoofmail.de.js +0 -47
  205. package/providers/static.js +0 -32
  206. package/providers/t-mail.org.js +0 -42
  207. package/providers/temp-email.info.js +0 -39
  208. package/providers/temp-inbox.com.js +0 -38
  209. package/providers/temp-inbox.me.js +0 -47
  210. package/providers/temp-mail.io.js +0 -36
  211. package/providers/temp-mail.org.2.js +0 -60
  212. package/providers/temp-mail.org.js +0 -36
  213. package/providers/temp-mailbox.com.js +0 -35
  214. package/providers/temp-mails.com.js +0 -45
  215. package/providers/temp.cab.js +0 -39
  216. package/providers/tempail.com.js +0 -36
  217. package/providers/tempinbox.xyz.js +0 -38
  218. package/providers/tempmail.adguard.com.js +0 -31
  219. package/providers/tempmail.altmails.com.js +0 -37
  220. package/providers/tempmail.cn.js +0 -38
  221. package/providers/tempmail.co.js +0 -38
  222. package/providers/tempmail.dev.js +0 -35
  223. package/providers/tempmail.io.js +0 -38
  224. package/providers/tempmail.ninja.js +0 -35
  225. package/providers/tempmail.plus.js +0 -47
  226. package/providers/tempmail.quest.js +0 -45
  227. package/providers/tempmail.run.js +0 -37
  228. package/providers/tempmail.tel.js +0 -38
  229. package/providers/tempmailed.com.js +0 -43
  230. package/providers/tempmailo.com.js +0 -35
  231. package/providers/tempo-email.com.js +0 -38
  232. package/providers/tempo-mail.xyz.js +0 -40
  233. package/providers/temporary-email.com.js +0 -35
  234. package/providers/temporary-email.org.js +0 -36
  235. package/providers/temporary-mail.net.js +0 -42
  236. package/providers/temporarymail.com.js +0 -39
  237. package/providers/tempos.email.js +0 -38
  238. package/providers/tempr.email.js +0 -45
  239. package/providers/temprmail.com.js +0 -38
  240. package/providers/tenmail.org.js +0 -40
  241. package/providers/thnen.com.js +0 -25
  242. package/providers/throwaway.io.js +0 -39
  243. package/providers/tmail.gg.js +0 -36
  244. package/providers/tmail.mmomekong.com.js +0 -38
  245. package/providers/tmailor.com.js +0 -37
  246. package/providers/tmailweb.com.js +0 -39
  247. package/providers/trash-mail.com.js +0 -42
  248. package/providers/trashmail.com.js +0 -39
  249. package/providers/trashmail.de.js +0 -36
  250. package/providers/trashmail.live.js +0 -36
  251. package/providers/trashmail.org.js +0 -39
  252. package/providers/trashmail.ws.js +0 -42
  253. package/providers/trashmails.com.js +0 -38
  254. package/providers/tuamaeaquelaursa.com.js +0 -25
  255. package/providers/txen.de.js +0 -48
  256. package/providers/wegwerfemailadresse.com.js +0 -43
  257. package/providers/yopmail.com.js +0 -37
  258. package/providers/yopmail.fr.js +0 -37
  259. package/providers/yopmail.net.js +0 -37
  260. package/providers/yourmail.online.js +0 -39
  261. package/providers/youxiang.dev.js +0 -25
  262. package/release.sh +0 -26
  263. package/repo-update.js +0 -134
  264. package/shared.js +0 -736
  265. package/test/doRequest.js +0 -47
  266. package/test/is_domain_banned.js +0 -53
  267. package/test/is_fakedomain.js +0 -136
  268. package/test/is_fakeemail.js +0 -136
  269. package/test/psl.js +0 -58
  270. package/test/repo_json_v1.js +0 -30
  271. package/test/repo_json_v2.js +0 -41
  272. package/test1.js +0 -36
  273. package/update-repo.sh +0 -37
  274. package/vars.js +0 -16
package/chart-update.js DELETED
@@ -1,261 +0,0 @@
1
- const path = require('path')
2
- const fs = require('fs')
3
- var Table = require('easy-table')
4
- const winston = require('winston')
5
- const { getConfig, Sentry } = require('./config')
6
- const chalk = require('chalk')
7
- const vars = require('./vars')
8
- const { softexit, wait } = require('mybase')
9
- const { pullDomains, pullEventsProviders, pullEventsByProvider } = require('./shared')
10
- const QuickChart = require('quickchart-js');
11
- const argv = require('minimist')(process.argv.slice(2))
12
- const md5 = require('md5')
13
-
14
- function writeToFile(fn, content) {
15
- // let fn = 'repo/markdown/README.md'
16
- fs.writeFileSync(fn, content)
17
- console.log(chalk.green(`+ file ${fn}`))
18
- return true
19
- }
20
-
21
- // function isEventGraphicCached(providerName) {
22
- // let fn = `success-rate-${md5(providerName)}.png`
23
- // let chartFile = path.join(__dirname, `/apiserver/public/img/dynamic/${fn}`)
24
- // if (fs.existsSync(chartFile)) {
25
- // // lets look if the file was recently rendered
26
- // let stats = fs.statSync(chartFile)
27
- // let mtimeMinutes = (new Date() - stats.mtime) / 1000 / 60 // modified time in minutes
28
- // if (mtimeMinutes < 200) {
29
- // console.log(`Chart for ${providerName} - taken from cache ${chartFile}`)
30
- // return chartFile
31
- // }
32
- // }
33
- // return false
34
- // }
35
-
36
- function dailyEventGraphic(providerName,daysAgo=60) {
37
- return new Promise(async function (resolve, reject) {
38
- const myChart = new QuickChart()
39
- let data = {}
40
-
41
- let successrate = {}
42
- let labels = []
43
- let fn = `success-rate-${md5(providerName)}.png`
44
- let chartFile = path.join(__dirname, `/apiserver/public/img/dynamic/${fn}`)
45
- if (fs.existsSync(chartFile)) {
46
- // lets look if the file was recently rendered
47
- let stats = fs.statSync(chartFile)
48
- let mtimeMinutes = (new Date() - stats.mtime) / 1000 / 60 // modified time in minutes
49
- if (mtimeMinutes < 200) {
50
- console.log(chalk.gray(`chart for ${providerName} - taken from cache ${chartFile}`))
51
- return resolve(fn)
52
- }
53
- }
54
- await wait(2) // rate limit
55
- let events = await pullEventsByProvider(providerName, daysAgo)
56
- for (let row of events) {
57
- let dayString = new Date(row.t).toISOString().substring(0, 10)
58
- if (!data.hasOwnProperty(dayString)) {
59
- data[dayString] = { success: 0, failed: 0 }
60
- successrate[dayString] = 0
61
- labels.push(dayString)
62
- }
63
- if (row.result === 'success') data[dayString].success++; else
64
- data[dayString].failed++;
65
- }
66
- for (let date of Object.keys(data)) {
67
- successrate[date] = ((data[date].success / (data[date].failed + data[date].success))) * 100
68
- }
69
-
70
- let chartConfig1 = {
71
- type: 'bar',
72
- data: {
73
- labels,
74
- datasets: [{
75
- label: `Success Rate - ${providerName} - %`,
76
- backgroundColor: QuickChart.getGradientFillHelper('vertical', ['green', 'red']),
77
- data: Object.keys(successrate).map(dayString => successrate[dayString])
78
- }
79
- ]
80
- },
81
- }
82
- myChart.setConfig(chartConfig1)
83
-
84
-
85
- await myChart.toFile(chartFile)
86
- console.log(`Creating success-rate chart for ${providerName}`)
87
- return resolve(fn)
88
-
89
- // calcualte success rate
90
-
91
- })
92
- }
93
- function dailyCoverageGraph(rows) {
94
- return new Promise(async function (resolve, reject) {
95
- const myChart = new QuickChart();
96
- const myChart2 = new QuickChart();
97
- const myChart3 = new QuickChart();
98
- let data = {}
99
- let labels = []
100
- let uniqueDomains = []
101
- let dataUniqueDomains = {}
102
- let dataUniqueDomainsMonthly = {}
103
-
104
- rows = rows.sort((a, b) => a.t - b.t)
105
- for (let row of rows) {
106
- let dayString = new Date(row.t).toISOString().substring(0, 10)
107
- let monthString = new Date(row.t).toISOString().substring(0, 7)
108
- if (!uniqueDomains.includes(row.domain)) uniqueDomains.push(row.domain)
109
- if (!data.hasOwnProperty(dayString)) {
110
- data[dayString] = []
111
- dataUniqueDomains[dayString] = uniqueDomains.length
112
- labels.push(dayString)
113
- }
114
- dataUniqueDomainsMonthly[monthString] = uniqueDomains.length
115
-
116
- if (!data[dayString].includes(row.domain)) data[dayString].push(row.domain)
117
- // console.log(row)
118
- // if (cnt<10) break
119
- // cnt--
120
- }
121
- // console.log(dataUniqueDomains)
122
- labels = labels.reverse().slice(0, 200).reverse()
123
- let labelsM = Object.keys(dataUniqueDomainsMonthly).reverse().slice(0, 200).reverse()
124
- let chartConfig2 = {
125
- type: 'line',
126
- data: {
127
- labels,
128
- datasets: [{
129
- label: 'Unique Domains in FakeFilter',
130
- data: labels.map(dayString => dataUniqueDomains[dayString]),
131
- fill: 'start',
132
- borderWidth: 0,
133
- pointRadius: 0,
134
- borderColor: 'rgba(255, 255, 0, 0.5)',
135
- backgroundColor: 'rgba(255, 255, 0, 0.5)',
136
- }]
137
- },
138
- }
139
-
140
- let chartConfig3 = {
141
- type: 'line',
142
- data: {
143
- labels: labelsM,
144
- datasets: [{
145
- label: 'Unique Domains in FakeFilter Per Month',
146
- data: labelsM.map(monthString => dataUniqueDomainsMonthly[monthString]),
147
- fill: 'start',
148
- borderWidth: 0,
149
- pointRadius: 0,
150
- borderColor: 'rgba(255, 120, 0, 0.5)',
151
- backgroundColor: 'rgba(255, 120, 0, 0.5)',
152
- }]
153
- },
154
- }
155
-
156
- let chartConfig1 = {
157
- // type: 'bar',
158
- type: 'line',
159
- data: {
160
- labels,
161
- datasets: [{
162
- label: 'Daily Coverage',
163
- data: labels.map(dayString => data[dayString].length),
164
- fill: 'start',
165
- borderWidth: 0,
166
- pointRadius: 0,
167
- borderColor: 'rgba(0, 255, 0, 0.5)',
168
- backgroundColor: 'rgba(0, 255, 0, 0.5)',
169
- }]
170
- },
171
- options: {
172
- scales: {
173
- yAxes: [{
174
- stacked: true,
175
- ticks: {
176
- min: -10,
177
- }
178
- }]
179
- },
180
- legend: {
181
- display: true,
182
- },
183
- },
184
- }
185
-
186
- // console.log(chartConfig1)
187
- myChart.setConfig(chartConfig1)
188
- myChart2.setConfig(chartConfig2)
189
- myChart3.setConfig(chartConfig3)
190
- await myChart.toFile(path.join(__dirname, '/apiserver/public/img/dynamic/chart1.png'))
191
-
192
- await myChart2.toFile(path.join(__dirname, '/apiserver/public/img/dynamic/chart2.png'))
193
- await myChart3.toFile(path.join(__dirname, '/apiserver/public/img/dynamic/chart3.png'))
194
-
195
- return resolve()
196
- })
197
- }
198
-
199
- async function start() {
200
- try {
201
- await getConfig()
202
- let events_providers = await pullEventsProviders(false, 60)
203
- let markdown3 = ``
204
- // if (false)
205
- for (let provider of events_providers) {
206
- // break
207
- // if (provider==='temporarymail.com')
208
- {
209
- try {
210
-
211
- let chartfn = await dailyEventGraphic(provider,60)
212
-
213
-
214
- markdown3 += `### ${provider}
215
- ![Success Rate for ${provider}](https://fakefilter.net/public/img/dynamic/${chartfn})
216
-
217
- `
218
- } catch (err) {
219
- Sentry.captureException(err)
220
- console.log(err)
221
- }
222
- }
223
- }
224
-
225
- let domain_rows = await pullDomains(1000, false)
226
- let urls = await dailyCoverageGraph(domain_rows)
227
-
228
- let markdown1 = `
229
- # Charts
230
- ## All Providers
231
- ### Daily Coverage
232
- Amount of coverage, actions against all known Disposable Email Providers per Day
233
- ![Daily Coverage](https://fakefilter.net/public/img/dynamic/chart1.png)
234
-
235
- ### Daily Unique Disposable Domains
236
- Number of unique known validated Disposable Domains in Total at given Day.
237
- ![Daily Disposable Domains](https://fakefilter.net/public/img/dynamic/chart2.png)
238
-
239
- ### Monthly Unique Disposable Domains
240
- Number of unique known validated Disposable Domains in Total at given Month.
241
- ![Daily Disposable Domains](https://fakefilter.net/public/img/dynamic/chart3.png)
242
-
243
- ## Success Rate
244
- Per Provider Success Rate per Day - A lower Success rate might mean different things; counter measures from provider to be detected like capchas or even service downtime.
245
-
246
- ${markdown3}
247
- `
248
- writeToFile(path.join(__dirname, 'repo/CHARTS.md'), markdown1)
249
-
250
- console.log(urls)
251
- process.exit(0)
252
-
253
- }
254
- catch (err) {
255
- console.log(err)
256
- Sentry.captureException(err)
257
- softexit("", 1)
258
- }
259
- }
260
-
261
- start()
package/cleanup.js DELETED
@@ -1,58 +0,0 @@
1
- const { Op } = require("sequelize")
2
- const path = require('path')
3
- const fs = require('fs')
4
- const winston = require('winston')
5
- const { getConfig, Sentry } = require('./config')
6
- const chalk = require('chalk')
7
- const vars = require('./vars')
8
- const { softexit, wait } = require('mybase')
9
- const { pullDomains, pullEventsProviders, pullEventsByProvider } = require('./shared')
10
- const QuickChart = require('quickchart-js');
11
- const argv = require('minimist')(process.argv.slice(2))
12
-
13
- /*
14
- we need to vacuum Harvested table to avoid excessive load times of domains
15
- */
16
-
17
- async function start() {
18
- try {
19
- await getConfig()
20
- let rows = await pullDomains(10000)
21
- // const progress = require('progressbar').create().step('combining')
22
- // progress.setTotal(rows.length)
23
- let memory = {}
24
- let keep_provider_domains_per_day = 1 // never put this to 0 or lower!!! never
25
- let deleted = 0
26
- if (keep_provider_domains_per_day > 0)
27
- for (let row of rows) {
28
- // await wait(1 / 1000)
29
- // progress.addTick()
30
- // console.log(row,provider)
31
- let day = new Date(row.t).toISOString().substring(0, 10)
32
- let provider = row.provider.toLowerCase()
33
- let domain = row.domain.toLowerCase()
34
-
35
- if (!memory.hasOwnProperty(day)) memory[day] = {}
36
- if (!memory[day].hasOwnProperty(provider)) memory[day][provider] = {}
37
- if (!memory[day][provider].hasOwnProperty(domain)) memory[day][provider][domain] = 0
38
- memory[day][provider][domain]++
39
- if (memory[day][provider][domain] > keep_provider_domains_per_day) {
40
- console.log(`day:${day} domain:${chalk.bold(domain)} provider:${chalk.yellow(provider)} found ${chalk.blue(memory[day][provider][domain])} times`)
41
- await vars.models.Harvested.destroy({ where: { id: row.id } })
42
- deleted++
43
- }
44
- }
45
- console.log(`Deleted ${deleted} rows from Harvested to vacuum`)
46
- process.exit(0)
47
-
48
-
49
- }
50
- catch (err) {
51
- console.log(err)
52
- Sentry.captureException(err)
53
- await wait(5)
54
- process.exit(0)
55
- }
56
- }
57
-
58
- start()
package/config.js DELETED
@@ -1,126 +0,0 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const argv = require('minimist')(process.argv.slice(2))
4
- const vars = require('./vars')
5
- const { Sequelize } = require('sequelize')
6
- var chalk = require('chalk')
7
- var debug = require('debug')('fakefilter')
8
- var { vaultFill,isLocal,canReadAndWrite } = require('mybase')
9
- const { Harvested,initHarvested } = require('./models/harvested')
10
- const { HarvestedClone,initHarvestedClone } = require('./models/harvested_clone')
11
- const { Events,initEvents } = require('./models/events')
12
-
13
-
14
- var vault = require("node-vault")({
15
- apiVersion: 'v1', // default
16
- endpoint: 'https://vault3.vpn1.org',
17
- token: 'd7130f39-8466-4444-b2b7-49c93da2c597'
18
- })
19
-
20
- var Sentry = require('@sentry/node');
21
- Sentry.init({
22
- dsn:'https://1074c423d608484e951455dc3c0d69bb@sentry.def24.com/25',
23
- captureUnhandledRejections: true,
24
- name: require('os').hostname()
25
- })
26
-
27
- function syncModel(modelName) {
28
- return new Promise(async function (resolve, reject) {
29
- console.log(`Synching model: ${modelName.name}`)
30
- try {
31
- await modelName.sync({ alter: true })
32
- return resolve(true)
33
- } catch (err) {
34
- console.log(err)
35
- console.log(chalk.red(`Exception by synching model: ${modelName.name}`))
36
- process.exit(0)
37
- }
38
- })
39
-
40
- }
41
-
42
- function getConfig()
43
- {
44
- return new Promise(async function (resolve,reject) {
45
- try {
46
-
47
- await vaultFill(vault,config)
48
- await canReadAndWrite(config.cache_folder,true)
49
-
50
- var sequelize = new Sequelize(
51
- config.mysqlserver.db,
52
- config.mysqlserver.login,
53
- config.mysqlserver.password, {
54
- host: config.mysqlserver.host,
55
- dialect: 'mysql',
56
- logging: false
57
- }
58
- )
59
- vars.sequelize = sequelize
60
- await sequelize.authenticate()
61
-
62
- // initialize
63
- await initHarvested()
64
- await initHarvestedClone()
65
- await initEvents()
66
-
67
-
68
-
69
- vars.models.Harvested = Harvested
70
- vars.models.HarvestedClone = HarvestedClone
71
- vars.models.Events = Events
72
- vars.config = config
73
-
74
- if (argv.sync) {
75
- await syncModel(Harvested)
76
- await syncModel(HarvestedClone)
77
- await syncModel(Events)
78
- process.exit(0)
79
- }
80
-
81
- resolve(config)
82
- }
83
- catch(err) {
84
- reject(err)
85
- }
86
-
87
- })
88
- }
89
-
90
- var config = {
91
- lockPort: 9994,
92
- captcha_resolver_api:'7a1f7a34d2c261393528e62088a75515',
93
- mysqlserver:{
94
- db:'fakefilter',
95
- login:'fakefilter',
96
- password:'Q3p5hfxyrZLs',
97
- host:'mix.def24.com'
98
- },
99
- apiserver: {
100
- ip: '127.0.0.1',
101
- port: 5520
102
- },
103
- cache_folder:path.join(__dirname,"cache"),
104
- main_folder:__dirname,
105
- ignore_domains : ['samsung.com','nytimes.com','yahoo.gr','outlook.sa','live.nl','yahoo.it','comcast.net','mail.ua','yahoo.com.br','outlook.es','aliyun.com','cps.edu','sina.cn','yahoo.ca',
106
- 't-online.de','yahoo.co.jp','hotmail.es','yahoo.in','vip.qq.com','yandex.ua','139.com','hotmail.it','orange.fr','hotmail.de','yahoo.com.hk','gmx.at','live.co.uk','gmx.net','yahoo.co.in','yahoo.de','yahoo.es','me.com','o2.pl','gmx.fr','abv.bg','yahoo.co.id','wp.pl','i.ua','msn.com','live.fr','googlemail.com','gmx.com','yahoo.co.uk','yahoo.fr','naver.com','sina.com','yandex.com','gmx.de','aol.com','hotmail.co.uk','yahoo.com.tw','hotmail.fr','bk.ru','mail.com','web.de','outlook.fr','protonmail.com','ukr.net','live.com','icloud.com','126.com','yandex.ru','outlook.com','163.com','mail.ru','hotmail.com','yahoo.com','qq.com','gmail.com','zoho.com','cloudflare.com']
107
- // vaultKey: 'vault@/secret/vault'
108
- }
109
-
110
- if (require.main===module) {
111
- getConfig().then(c=>{
112
- console.log('11')
113
- if (!argv.sync) console.log(c)
114
- console.log('22')
115
- process.exit(0)
116
- })
117
- }
118
-
119
-
120
-
121
-
122
- module.exports = {
123
- Sentry,
124
- getConfig,
125
- config
126
- }
@@ -1,41 +0,0 @@
1
- const fs = require('fs')
2
- const { Sentry } = require('../../config')
3
- const { launch } = require('../../shared')
4
- const { wait } = require('mybase');
5
-
6
- // const URL = 'https://fakefilter.net/public/img/test.html'
7
- // const URL = 'https://sdnz.jdjy.sh.cn/'
8
- const URL = `https://visitor0.com/static/demo/basic.html?2`
9
- // const URL = `https://infosimples.github.io/detect-headless/`
10
- // const URL = `https://leaky.page/timer.html`
11
- const lookingFor = 'bitrix24'.toLowerCase();
12
-
13
-
14
- function start(pageWaitTime = 1, matchWaitTime = 5) {
15
- return new Promise(async function (resolve, reject) {
16
- try {
17
- let { browser, page } = await launch(true, URL, pageWaitTime, false, false, 'domcontentloaded')
18
- await wait(5)
19
-
20
-
21
- console.log(`[${Date.now()}] searching for our match ${lookingFor}`)
22
- const renderedDOM = await page.content();
23
- fs.writeFileSync('renderedDOM.html', renderedDOM)
24
-
25
-
26
- if (browser) await browser.close()
27
-
28
- return resolve()
29
- } catch (err) {
30
- console.log(err)
31
- Sentry.captureException(err)
32
- resolve(false)
33
- }
34
- })
35
- }
36
-
37
- // for cli usage - development
38
- if (require.main == module) {
39
- start(false).then(res => { process.exit(0) })
40
- }
41
-
@@ -1,8 +0,0 @@
1
- <html><head>
2
-
3
- </head>
4
- <body>
5
- <h1>Hello World</h1>
6
- <script src="/tag"></script>
7
-
8
- </body></html>
package/elements/demo.js DELETED
@@ -1,78 +0,0 @@
1
- const chalk = require('chalk')
2
- const fs = require('fs')
3
- const { Sentry } = require('../config')
4
- const { launch } = require('../shared')
5
- // const URL = 'https://www.blackdesertfoundry.com/all-recipes/'
6
- const cheerio = require('cheerio');
7
- const { wait } = require('mybase');
8
-
9
- // const URL = 'https://fakefilter.net/public/img/test.html'
10
- // const URL = 'https://sdnz.jdjy.sh.cn/'
11
- const URL = `https://fords.com.ua/nasos_vakuumnyy_ford_ranger_1997_2007_hmpx.html`
12
- const lookingFor = 'bitrix24'.toLowerCase();
13
-
14
- function searchFor(renderedDOM) {
15
- const $ = cheerio.load(renderedDOM);
16
- // console.log($('body').html())
17
-
18
- const scriptSrcUrls = [];
19
- const foundItems = []
20
- $('script[src]').each((index, element) => {
21
- const wholeTag = $(element).toString().toLowerCase();
22
-
23
- const srcUrl = $(element).attr('src');
24
- scriptSrcUrls.push(srcUrl);
25
- console.log(wholeTag)
26
- if (wholeTag.includes(lookingFor)) {
27
- foundItems.push({
28
- srcUrl,
29
- wholeTag
30
- })
31
- }
32
- });
33
-
34
- console.log(scriptSrcUrls)
35
- console.log(foundItems)
36
- return foundItems
37
- }
38
-
39
- function start(pageWaitTime = 1, matchWaitTime = 5) {
40
- return new Promise(async function (resolve, reject) {
41
- try {
42
- let { browser, page } = await launch(true, URL, pageWaitTime, false, false, 'domcontentloaded')
43
- await wait(5)
44
- const started = Date.now()
45
- while(true) {
46
- console.log(`[${Date.now()}] searching for our match ${lookingFor}`)
47
- const renderedDOM = await page.content();
48
- fs.writeFileSync('renderedDOM.html', renderedDOM)
49
- const foundItems = searchFor(renderedDOM)
50
- if (foundItems.length > 0) {
51
- console.log(chalk.green('found'))
52
- break
53
- }
54
- await wait(1)
55
- if (Date.now() - started > matchWaitTime*1000) {
56
- console.log(chalk.red('not found'))
57
- break
58
- }
59
- }
60
-
61
-
62
-
63
- if (browser) await browser.close()
64
-
65
- return resolve()
66
- } catch (err) {
67
- console.log(err)
68
- Sentry.captureException(err)
69
- resolve(false)
70
- }
71
- })
72
- }
73
-
74
- // for cli usage - development
75
- if (require.main == module) {
76
- start(false).then(res => { process.exit(0) })
77
- }
78
-