refactor: test url with URL.canParse()
supported by Nodejs >=19.9
This commit is contained in:
parent
6815b90e14
commit
9d1c90066d
|
@ -8,7 +8,7 @@
|
|||
"unzipper": "^0.12.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.12.0"
|
||||
"node": ">= 20.9.0"
|
||||
},
|
||||
"type": "module"
|
||||
}
|
||||
|
|
|
@ -7,29 +7,33 @@ import { fileURLToPath } from 'node:url'
|
|||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||
const { parse } = JSON
|
||||
|
||||
const f = async () => {
|
||||
// __dirname is src/
|
||||
const outputFile = join(__dirname, '../tmp/domains-raw.txt')
|
||||
await rm(outputFile, { force: true })
|
||||
const domainsPath = join(__dirname, '../tmp/blacklistdomains.json')
|
||||
// __dirname is src/
|
||||
const outputFile = join(__dirname, '../tmp/domains-raw.txt')
|
||||
await rm(outputFile, { force: true })
|
||||
const domainsPath = join(__dirname, '../tmp/blacklistdomains.json')
|
||||
|
||||
const domainsStr = await readFile(domainsPath)
|
||||
const domainsArray = parse(domainsStr)
|
||||
const domainsStr = await readFile(domainsPath)
|
||||
const domainsArray = parse(domainsStr)
|
||||
|
||||
const domains = new Set()
|
||||
const domains = new Set()
|
||||
|
||||
for (const { url } of domainsArray) {
|
||||
let parsedUrl = new URL('http://example.com')
|
||||
try {
|
||||
parsedUrl = new URL(url.replace(/\*\./g, ''))
|
||||
} catch {
|
||||
continue
|
||||
}
|
||||
const domain = parsedUrl.hostname.replace(/\\/g, '').replace(/^www\./, '')
|
||||
domains.add(domain)
|
||||
for (const { url } of domainsArray) {
|
||||
let domain = ''
|
||||
if (URL.canParse(url)) {
|
||||
const urlObj = new URL(url)
|
||||
|
||||
domain = urlObj.hostname
|
||||
} else {
|
||||
const urlArray = url.split('/')
|
||||
if (urlArray.length >= 3) domain = urlArray[2]
|
||||
}
|
||||
if (domain.length >= 1) {
|
||||
domains.add(domain
|
||||
.replace(/^\*\./, '')
|
||||
.replace(/\\/g, '')
|
||||
.replace(/^www\./, '')
|
||||
)
|
||||
}
|
||||
|
||||
await writeFile(outputFile, Array.from(domains).join('\n'))
|
||||
}
|
||||
|
||||
f()
|
||||
await writeFile(outputFile, Array.from(domains).join('\n'))
|
||||
|
|
Loading…
Reference in New Issue