mirror of
https://github.com/zoriya/flood.git
synced 2026-06-01 02:29:01 +00:00
torrentPropertiesUtil: use tldts for getDomainsFromURLs
This commit is contained in:
Generated
+34
@@ -186,6 +186,7 @@
|
||||
"tar-fs": "^2.1.1",
|
||||
"tar-stream": "^2.2.0",
|
||||
"terser-webpack-plugin": "^5.1.1",
|
||||
"tldts": "^5.7.2",
|
||||
"ts-jest": "^26.5.0",
|
||||
"ts-node-dev": "^1.1.1",
|
||||
"tsconfig-paths": "^3.9.0",
|
||||
@@ -22360,6 +22361,24 @@
|
||||
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tldts": {
|
||||
"version": "5.7.2",
|
||||
"resolved": "https://registry.npmjs.org/tldts/-/tldts-5.7.2.tgz",
|
||||
"integrity": "sha512-fDgg3TD8uETU/713Vv/wB+TJHY5xjU+hHQcRynExe7bI9xUJLiltyVP2L6JMO1UlvzpCo313WhI73IVfY0s9rw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"tldts-core": "^5.7.2"
|
||||
},
|
||||
"bin": {
|
||||
"tldts": "bin/cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/tldts-core": {
|
||||
"version": "5.7.2",
|
||||
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-5.7.2.tgz",
|
||||
"integrity": "sha512-lZyNJhui/CQbQ/NmDEpod8BvNRi28wBofotWLK3WudJETZcridgzIikHbGedVhBr1MBvq+ZVO3EmFwe1XfqpVg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
@@ -41799,6 +41818,21 @@
|
||||
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
|
||||
"dev": true
|
||||
},
|
||||
"tldts": {
|
||||
"version": "5.7.2",
|
||||
"resolved": "https://registry.npmjs.org/tldts/-/tldts-5.7.2.tgz",
|
||||
"integrity": "sha512-fDgg3TD8uETU/713Vv/wB+TJHY5xjU+hHQcRynExe7bI9xUJLiltyVP2L6JMO1UlvzpCo313WhI73IVfY0s9rw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tldts-core": "^5.7.2"
|
||||
}
|
||||
},
|
||||
"tldts-core": {
|
||||
"version": "5.7.2",
|
||||
"resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-5.7.2.tgz",
|
||||
"integrity": "sha512-lZyNJhui/CQbQ/NmDEpod8BvNRi28wBofotWLK3WudJETZcridgzIikHbGedVhBr1MBvq+ZVO3EmFwe1XfqpVg==",
|
||||
"dev": true
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
|
||||
@@ -209,6 +209,7 @@
|
||||
"tar-fs": "^2.1.1",
|
||||
"tar-stream": "^2.2.0",
|
||||
"terser-webpack-plugin": "^5.1.1",
|
||||
"tldts": "^5.7.2",
|
||||
"ts-jest": "^26.5.0",
|
||||
"ts-node-dev": "^1.1.1",
|
||||
"tsconfig-paths": "^3.9.0",
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import {getDomain} from 'tldts';
|
||||
|
||||
import type {TorrentProperties} from '../../shared/types/Torrent';
|
||||
|
||||
export const hasTorrentFinished = (
|
||||
@@ -22,15 +24,10 @@ export const hasTorrentFinished = (
|
||||
export const getDomainsFromURLs = (urls: Array<string>): Array<string> => {
|
||||
return [
|
||||
...urls.reduce((memo: Set<string>, url: string) => {
|
||||
const fqdn = url.split('/')[2]?.split(':')[0];
|
||||
const domain = getDomain(url);
|
||||
|
||||
if (fqdn?.length > 0) {
|
||||
const domainLastParts = fqdn.split('.').slice(-2);
|
||||
|
||||
// ignore IP addresses. RFC 952: first char of a valid TLD must be an alpha char
|
||||
if (!'0123456789'.includes(domainLastParts[domainLastParts.length - 1]?.[0])) {
|
||||
memo.add(domainLastParts.join('.'));
|
||||
}
|
||||
if (domain != null) {
|
||||
memo.add(domain);
|
||||
}
|
||||
|
||||
return memo;
|
||||
|
||||
Reference in New Issue
Block a user