Removed unused scripts using bhttp and removed dependency.

This commit is contained in:
DebaucheryLibrarian
2026-11-08 17:18:10 +01:00
parent 27be031068
commit 12c27722ee
11 changed files with 2 additions and 1532 deletions
+1 -352
View File
@@ -17,7 +17,6 @@
"@tensorflow/tfjs-core": "4.22.0", "@tensorflow/tfjs-core": "4.22.0",
"@tensorflow/tfjs-node": "^4.22.0", "@tensorflow/tfjs-node": "^4.22.0",
"@vladmandic/human": "^3.3.6", "@vladmandic/human": "^3.3.6",
"bhttp": "^1.2.8",
"bluebird": "^3.7.2", "bluebird": "^3.7.2",
"bottleneck": "^2.19.5", "bottleneck": "^2.19.5",
"casual": "^1.6.2", "casual": "^1.6.2",
@@ -718,9 +717,6 @@
"cpu": [ "cpu": [
"arm" "arm"
], ],
"libc": [
"glibc"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -737,9 +733,6 @@
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"libc": [
"glibc"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -756,9 +749,6 @@
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
"libc": [
"glibc"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -775,9 +765,6 @@
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
"libc": [
"glibc"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -794,9 +781,6 @@
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
"libc": [
"glibc"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -813,9 +797,6 @@
"cpu": [ "cpu": [
"x64" "x64"
], ],
"libc": [
"glibc"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -832,9 +813,6 @@
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"libc": [
"musl"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -851,9 +829,6 @@
"cpu": [ "cpu": [
"x64" "x64"
], ],
"libc": [
"musl"
],
"license": "LGPL-3.0-or-later", "license": "LGPL-3.0-or-later",
"optional": true, "optional": true,
"os": [ "os": [
@@ -870,9 +845,6 @@
"cpu": [ "cpu": [
"arm" "arm"
], ],
"libc": [
"glibc"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -895,9 +867,6 @@
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"libc": [
"glibc"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -920,9 +889,6 @@
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
"libc": [
"glibc"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -945,9 +911,6 @@
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
"libc": [
"glibc"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -970,9 +933,6 @@
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
"libc": [
"glibc"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -995,9 +955,6 @@
"cpu": [ "cpu": [
"x64" "x64"
], ],
"libc": [
"glibc"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -1020,9 +977,6 @@
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"libc": [
"musl"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -1045,9 +999,6 @@
"cpu": [ "cpu": [
"x64" "x64"
], ],
"libc": [
"musl"
],
"license": "Apache-2.0", "license": "Apache-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -2648,34 +2599,6 @@
"url": "https://github.com/sponsors/wooorm" "url": "https://github.com/sponsors/wooorm"
} }
}, },
"node_modules/bhttp": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/bhttp/-/bhttp-1.2.8.tgz",
"integrity": "sha512-ZwEA5FKEUhc98EHRX+BkNmUOs48RTnglvfze2+p0HrMPwhQBtVw1aAYyylnCtRl6x6vltCkzGo2+twQ6LVfm6Q==",
"license": "WTFPL OR CC0-1.0",
"dependencies": {
"bluebird": "^2.8.2",
"concat-stream": "^1.4.7",
"debug": "^2.1.1",
"dev-null": "^0.1.1",
"errors": "^0.2.0",
"extend": "^2.0.0",
"form-data2": "^1.0.0",
"form-fix-array": "^1.0.0",
"lodash.clonedeep": "^4.5.0",
"lodash.merge": "^4.6.2",
"stream-length": "^1.0.2",
"through2-sink": "^1.0.0",
"through2-spy": "^1.2.0",
"tough-cookie": "^2.3.1"
}
},
"node_modules/bhttp/node_modules/bluebird": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
"integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==",
"license": "MIT"
},
"node_modules/binary-extensions": { "node_modules/binary-extensions": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -3074,23 +2997,6 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/combined-stream2": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/combined-stream2/-/combined-stream2-1.1.2.tgz",
"integrity": "sha512-sVqUHJmbdVm+HZWy4l34BPLczxI4fltN4Bm2vcvASsqBIXW4xFb4TRkwM8bw/UUXK9/OdHdAwi2cRYVEKrxzbg==",
"license": "WTFPL",
"dependencies": {
"bluebird": "^2.8.1",
"debug": "^2.1.1",
"stream-length": "^1.0.1"
}
},
"node_modules/combined-stream2/node_modules/bluebird": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
"integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==",
"license": "MIT"
},
"node_modules/commander": { "node_modules/commander": {
"version": "10.0.1", "version": "10.0.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
@@ -3106,21 +3012,6 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"engines": [
"node >= 0.8"
],
"license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
"node_modules/config": { "node_modules/config": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/config/-/config-5.0.1.tgz", "resolved": "https://registry.npmjs.org/config/-/config-5.0.1.tgz",
@@ -3203,12 +3094,6 @@
"url": "https://opencollective.com/core-js" "url": "https://opencollective.com/core-js"
} }
}, },
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"license": "MIT"
},
"node_modules/create-error": { "node_modules/create-error": {
"version": "0.3.1", "version": "0.3.1",
"resolved": "https://registry.npmjs.org/create-error/-/create-error-0.3.1.tgz", "resolved": "https://registry.npmjs.org/create-error/-/create-error-0.3.1.tgz",
@@ -3433,12 +3318,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/dev-null": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/dev-null/-/dev-null-0.1.1.tgz",
"integrity": "sha512-nMNZG0zfMgmdv8S5O0TM5cpwNbGKRGPCxVsr0SmA3NZZy9CYBbuNLL0PD3Acx9e5LIUgwONXtM9kM6RlawPxEQ==",
"license": "MIT"
},
"node_modules/doctrine": { "node_modules/doctrine": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -3533,15 +3412,6 @@
"url": "https://github.com/fb55/entities?sponsor=1" "url": "https://github.com/fb55/entities?sponsor=1"
} }
}, },
"node_modules/errors": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/errors/-/errors-0.2.0.tgz",
"integrity": "sha512-W0w4yTo+twP/wGTF25kBGAXroAHzvxZvEDHJsCixlWS8lf8li0aZDhT+hz0mHQwsSW5esD5jyTQkaqA0ZHF83A==",
"license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/es-abstract": { "node_modules/es-abstract": {
"version": "1.24.2", "version": "1.24.2",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz",
@@ -4295,12 +4165,6 @@
} }
} }
}, },
"node_modules/extend": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz",
"integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==",
"license": "MIT"
},
"node_modules/fast-deep-equal": { "node_modules/fast-deep-equal": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -4559,43 +4423,6 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/form-data2": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/form-data2/-/form-data2-1.0.4.tgz",
"integrity": "sha512-buz4C3F6/7Vpdxt7dNU/tSfjQO/5z9Pyjfb43VhlVvSos5zVhCcMuW9sF1yJ2FdxZRCD2sWQ9WhqUiYLt+AUVQ==",
"license": "WTFPL",
"dependencies": {
"bluebird": "^2.8.2",
"combined-stream2": "^1.0.2",
"debug": "^2.1.1",
"mime": "^1.3.4",
"uuid": "^2.0.1"
}
},
"node_modules/form-data2/node_modules/bluebird": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
"integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==",
"license": "MIT"
},
"node_modules/form-data2/node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"license": "MIT",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/form-fix-array": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/form-fix-array/-/form-fix-array-1.0.0.tgz",
"integrity": "sha512-f3qXI4CcvW7/6vqTKwCftcrFgfEBfWYPQTfvXrHYevHbJVfc107/SVvXvwUAYMaUAHdvu9ENQvLufJKphQI14w==",
"license": "WTFPL"
},
"node_modules/formdata-polyfill": { "node_modules/formdata-polyfill": {
"version": "4.0.10", "version": "4.0.10",
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
@@ -5842,12 +5669,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"license": "MIT"
},
"node_modules/isexe": { "node_modules/isexe": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -6175,12 +5996,6 @@
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
"license": "MIT"
},
"node_modules/lodash.debounce": { "node_modules/lodash.debounce": {
"version": "4.0.8", "version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@@ -6214,6 +6029,7 @@
"version": "4.6.2", "version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/lodash.unionwith": { "node_modules/lodash.unionwith": {
@@ -7251,12 +7067,6 @@
"prettyjson": "bin/prettyjson" "prettyjson": "bin/prettyjson"
} }
}, },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"license": "MIT"
},
"node_modules/progress": { "node_modules/progress": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
@@ -7301,18 +7111,6 @@
"url": "https://opencollective.com/express" "url": "https://opencollective.com/express"
} }
}, },
"node_modules/psl": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
"integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
"license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
"funding": {
"url": "https://github.com/sponsors/lupomontero"
}
},
"node_modules/punycode": { "node_modules/punycode": {
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -7384,36 +7182,6 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/readable-stream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/readable-stream/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/readdirp": { "node_modules/readdirp": {
"version": "3.6.0", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -8214,21 +7982,6 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/stream-length": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/stream-length/-/stream-length-1.0.2.tgz",
"integrity": "sha512-aI+qKFiwoDV4rsXiS7WRoCt+v2RX1nUj17+KJC5r2gfh5xoSJIfP6Y3Do/HtvesFcTSWthIuJ3l1cvKQY/+nZg==",
"license": "WTFPL",
"dependencies": {
"bluebird": "^2.6.2"
}
},
"node_modules/stream-length/node_modules/bluebird": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
"integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==",
"license": "MIT"
},
"node_modules/string_decoder": { "node_modules/string_decoder": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -8439,84 +8192,6 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/through2": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz",
"integrity": "sha512-zexCrAOTbjkBCXGyozn7hhS3aEaqdrc59mAD2E3dKYzV1vFuEGQ1hEDJN2oQMQFwy4he2zyLqPZV+AlfS8ZWJA==",
"license": "MIT",
"dependencies": {
"readable-stream": "~1.0.17",
"xtend": "~3.0.0"
}
},
"node_modules/through2-sink": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/through2-sink/-/through2-sink-1.0.0.tgz",
"integrity": "sha512-9HvIHIEXZ5YgstQx3vsu4U/QQ/n7X5RHlXf8MsfSEnEzeUFbX9BHBWmlwdQ1b6CzDlUEDwjFnkSIxpJZ6qP+0Q==",
"license": "MIT",
"dependencies": {
"through2": "~0.5.1",
"xtend": "~3.0.0"
}
},
"node_modules/through2-sink/node_modules/xtend": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
"integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==",
"engines": {
"node": ">=0.4"
}
},
"node_modules/through2-spy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/through2-spy/-/through2-spy-1.2.0.tgz",
"integrity": "sha512-QJ/32YGXA8K/PlkT/7kJOfWZREdlwoCcdVOL/wZHhV0JQJlwUQeDi4QZrEUEAdIL6Kjb9BRdHHz65zg+rzFxuA==",
"license": "MIT",
"dependencies": {
"through2": "~0.5.1",
"xtend": "~3.0.0"
}
},
"node_modules/through2-spy/node_modules/xtend": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
"integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==",
"engines": {
"node": ">=0.4"
}
},
"node_modules/through2/node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
"license": "MIT"
},
"node_modules/through2/node_modules/readable-stream": {
"version": "1.0.34",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
"integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "0.0.1",
"string_decoder": "~0.10.x"
}
},
"node_modules/through2/node_modules/string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
"license": "MIT"
},
"node_modules/through2/node_modules/xtend": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
"integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==",
"engines": {
"node": ">=0.4"
}
},
"node_modules/tildify": { "node_modules/tildify": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
@@ -8566,19 +8241,6 @@
"node": ">=0.6" "node": ">=0.6"
} }
}, },
"node_modules/tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"license": "BSD-3-Clause",
"dependencies": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/tr46": { "node_modules/tr46": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-7.0.0.tgz", "resolved": "https://registry.npmjs.org/tr46/-/tr46-7.0.0.tgz",
@@ -8758,12 +8420,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"license": "MIT"
},
"node_modules/umzug": { "node_modules/umzug": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/umzug/-/umzug-2.3.0.tgz", "resolved": "https://registry.npmjs.org/umzug/-/umzug-2.3.0.tgz",
@@ -9265,13 +8921,6 @@
"node": ">= 0.4.0" "node": ">= 0.4.0"
} }
}, },
"node_modules/uuid": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
"integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==",
"deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
"license": "MIT"
},
"node_modules/vary": { "node_modules/vary": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
-1
View File
@@ -49,7 +49,6 @@
"@tensorflow/tfjs-core": "4.22.0", "@tensorflow/tfjs-core": "4.22.0",
"@tensorflow/tfjs-node": "^4.22.0", "@tensorflow/tfjs-node": "^4.22.0",
"@vladmandic/human": "^3.3.6", "@vladmandic/human": "^3.3.6",
"bhttp": "^1.2.8",
"bluebird": "^3.7.2", "bluebird": "^3.7.2",
"bottleneck": "^2.19.5", "bottleneck": "^2.19.5",
"casual": "^1.6.2", "casual": "^1.6.2",
+1 -1
View File
@@ -30,7 +30,7 @@ const { fetchEntityReleaseIds } = require('./entity-releases');
const streamQueue = taskQueue(); const streamQueue = taskQueue();
// carried over from the legacy HTTP module, unprint's raw request interface would identify as traxxx // carried over from the legacy HTTP module, unprint's raw request interface would identify as traxxx
const mediaUserAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'; const mediaUserAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36';
const s3 = new S3Client({ const s3 = new S3Client({
region: 'eu-central-1', region: 'eu-central-1',
-84
View File
@@ -1,84 +0,0 @@
'use strict';
const fs = require('fs').promises;
const bhttp = require('bhttp');
const slugify = require('../utils/slugify');
const { studios: oldStudios } = require('../../seeds/03_studios');
/*
const slugMap = {
thay_ksada: 'thayksada2',
};
*/
async function init() {
const res = await bhttp.get('https://pornbox.com/studio/list');
if (!res.statusCode === 200) {
throw new Error(`Failed to retrieve studios (${res.statusCode}): ${res.body.toString()}`);
}
const newStudios = res.body.map((studio) => {
const slug = slugify(studio.name, '');
const oldStudio = oldStudios.find((oldStudioX) => oldStudioX.slug === slug);
const tags = oldStudio?.tags || [];
const newStudio = {
name: studio.name,
slug,
originalSlug: slugify(studio.alias, ''),
url: `https://www.analvids.com/studios/${studio.alias}`,
parent: 'analvids',
};
if (oldStudio?.alias) {
newStudio.alias = oldStudio.alias;
}
if (studio.description && studio.description.toLowerCase() !== studio.name.toLowerCase()) {
newStudio.description = studio.description;
}
if (studio.directions?.includes('gay')) {
tags.push('gay');
}
if (studio.directions?.includes('lesbian')) {
tags.push('lesbian');
}
if (studio.directions?.includes('trans')) {
tags.push('transsexual');
}
if (tags.length > 0) {
newStudio.tags = Array.from(new Set(tags));
}
return newStudio;
});
await fs.writeFile('./analvids-studios.json', JSON.stringify(newStudios, null, 4));
newStudios.reduce((acc, studio) => {
const existingStudio = acc.get(studio.slug);
if (existingStudio) {
if (!acc.has(studio.originalSlug)) {
console.log('REWRITE', studio.slug, studio.originalSlug);
studio.slug = studio.originalSlug; // eslint-disable-line
}
console.log('slug already exists!', existingStudio, studio, studio.originalSlug, studio.slug);
}
acc.set(studio.slug, studio);
return acc;
}, new Map());
// console.log(newStudios);
}
init();
-18
View File
@@ -1,18 +0,0 @@
'use strict';
const bhttp = require('bhttp');
async function init() {
const res = await bhttp.head('https://www.kink.com/consent', {
headers: {
Host: 'www.kink.com',
'User-Agent': 'HTTPie/2.6.0',
Accept: '*/*',
Connection: 'keep-alive',
},
});
console.log(res.body.toString(), res.headers, res.statusCode);
}
init();
-118
View File
@@ -1,118 +0,0 @@
'use strict';
const bhttp = require('bhttp');
const Promise = require('bluebird');
const fsPromises = require('fs').promises;
const fs = require('fs');
const { PassThrough } = require('stream');
const crypto = require('crypto');
const argv = require('yargs')(require('yargs/helpers').hideBin(process.argv)).argv;
const file = 'https://speed.hetzner.de/100MB.bin';
// const file = 'https://speed.hetzner.de/1GB.bin';
// const file = 'https://speed.hetzner.de/10GB.bin';
function getMemoryUsage() {
return process.memoryUsage().rss / (10 ** 6);
}
const stats = {
peakMemoryUsage: getMemoryUsage(),
done: false,
downloads: {},
};
function render() {
const downloads = Object.entries(stats.downloads);
process.stdout.clearScreenDown();
process.stdout.write(`peak memory: ${stats.peakMemoryUsage.toFixed(2)} MB\n`);
downloads.forEach(([download, progress]) => {
process.stdout.write(`${download}: ${progress}${typeof progress === 'string' ? '' : '%'}\n`);
});
process.stdout.moveCursor(0, -(downloads.length + 1));
process.stdout.cursorTo(0);
if (downloads.length === 0 || !downloads.every(([_label, download]) => typeof download === 'string')) {
setTimeout(() => render(), 1000);
return;
}
process.stdout.moveCursor(0, downloads.length + 1);
}
function setProgress(label, completedBytes, totalBytes, hash) {
const memory = getMemoryUsage();
stats.peakMemoryUsage = Math.max(memory, stats.peakMemoryUsage);
stats.downloads[label] = hash || Math.round((completedBytes / totalBytes) * 100);
}
async function buffered(label) {
const hash = crypto.createHash('blake2b512');
const imageRes = await bhttp.get(file, {
onDownloadProgress(completedBytes, totalBytes) {
setProgress(label, completedBytes, totalBytes);
},
});
hash.update(imageRes.body);
setProgress(label, null, null, hash.digest('hex'));
await fsPromises.writeFile(`/mnt/stor/Pictures/traxxx/temp/buffered-${label}.bin`, imageRes.body);
}
async function streamed(label) {
const hash = crypto.createHash('blake2b512');
hash.setEncoding('hex');
const hashStream = new PassThrough();
const targetStream = fs.createWriteStream(`/mnt/stor/Pictures/traxxx/temp/streamed-${label}.bin`);
const imageRes = await bhttp.get(file, {
stream: true,
});
const stream = imageRes
.pipe(hashStream)
.pipe(targetStream);
imageRes.on('progress', (completedBytes, totalBytes) => {
setProgress(label, completedBytes, totalBytes);
});
hashStream.on('data', (chunk) => {
hash.write(chunk);
});
stream.on('finish', () => {
hash.end();
setProgress(label, null, null, hash.read());
});
}
async function init() {
const n = argv.n || 1;
if (argv._.includes('stream')) {
console.log('using streams');
render();
await Promise.map(Array.from({ length: n }), async (value, index) => streamed(index + 1));
return;
}
if (argv._.includes('buffer')) {
console.log('using buffers');
render();
await Promise.map(Array.from({ length: n }), async (value, index) => buffered(index + 1));
}
}
init();
-18
View File
@@ -1,18 +0,0 @@
'use strict';
const bhttp = require('bhttp');
const sharp = require('sharp');
const { argv } = require('yargs')(require('yargs/helpers').hideBin(process.argv));
const url = argv.url || 'http://localhost:5000/media/actors/tommy-pistol/1580341442712.jpeg';
async function scan() {
console.log(url);
const res = await bhttp.get(url);
const stats = await sharp(res.body).stats();
console.log(stats);
}
scan();
-21
View File
@@ -1,21 +0,0 @@
'use strict';
const Promise = require('bluebird');
const bhttp = require('bhttp');
const knex = require('../knex');
async function run() {
const network = await knex('networks').where('slug', 'mofos').first();
const sites = await knex('sites').where('network_id', network.id);
await Promise.map(sites, async (site) => {
const res = await bhttp.get(site.url);
console.log(site.url, res.statusCode);
}, {
concurrency: 5,
});
}
run();
-37
View File
@@ -1,37 +0,0 @@
'use strict';
const Promise = require('bluebird');
const bhttp = require('bhttp');
const fs = require('fs-extra');
const knex = require('../knex');
async function init() {
const sites = await knex('sites')
.select('networks.name', 'sites.slug')
.join('networks', 'networks.id', 'sites.network_id')
.where('networks.slug', 'score');
await Promise.map(sites, async (site) => {
const url = `https://cdn77.scoreuniverse.com/${site.slug}/images/logo.png`;
console.log(url);
const res = await bhttp.get(url, {
responseTimeout: 5000,
});
if (res.statusCode === 200) {
console.log(`Saving logo for ${site.slug}`);
await fs.writeFile(`./score/${site.slug}.png`, res.body);
}
console.log(`No logo found for ${site.slug}`);
}, {
concurrency: 10,
});
knex.destroy();
}
init();
-55
View File
@@ -1,55 +0,0 @@
'use strict';
const config = require('config');
const { PassThrough } = require('stream');
const fs = require('fs');
const path = require('path');
const bhttp = require('bhttp');
const crypto = require('crypto');
const sharp = require('sharp');
const url = 'https://thumbs.julesjordan.com/trial/content//upload/dl03/julesjordan/oil_overload_16_scene2//photos/alina_lopez_jules_jordan_com_77.jpg';
async function init() {
const hash = crypto.createHash('blake2b512');
hash.setEncoding('hex');
const res = await bhttp.get(url, {
stream: true,
});
const metaStream = sharp();
const hashStream = new PassThrough();
const target = fs.createWriteStream(path.join(config.media.path, 'temp', 'alina.jpg'));
const thumbTarget = fs.createWriteStream(path.join(config.media.path, 'temp', 'alina_thumb.jpg'));
hashStream.on('data', (chunk) => {
hash.write(chunk);
});
metaStream.clone()
.resize(320)
.pipe(thumbTarget);
const stream = res
.pipe(metaStream)
.pipe(hashStream)
.pipe(target);
stream.on('finish', () => {
hash.end();
const digest = hash.read();
console.log('stream', digest);
});
metaStream.on('info', (info) => {
console.log('info', info);
});
const stats = await metaStream.stats();
console.log('stats', stats);
}
init();
-827
View File
@@ -1,827 +0,0 @@
const Promise = require('bluebird');
const bhttp = require('bhttp');
const fs = require('fs');
const channels = [{
name: 'Analyzed Girls',
slug: 'analyzedgirls',
url: 'https://analyzedgirls.com',
alias: ['ag',
],
tags: ['anal',
],
parent: 'teencoreclub',
parameters: {
siteId: 178,
},
},
{
name: 'Archived Updates',
slug: 'archivedupdates',
url: 'https://archivedupdates.com',
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 482,
},
},
{
name: 'Ass Teen Mouth',
slug: 'assteenmouth',
url: 'https://assteenmouth.com',
alias: ['atm',
],
tags: ['anal',
'atm',
'teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 180,
},
},
{
name: 'Bang Teen Pussy',
slug: 'bangteenpussy',
url: 'https://bangteenpussy.com',
alias: ['btp',
],
tags: ['teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 182,
},
},
{
name: 'Brutal Invasion',
slug: 'brutalinvasion',
url: 'https://brutalinvasion.com',
alias: ['bin',
],
parent: 'teencoreclub',
parameters: {
siteId: 184,
},
},
{
name: 'Clean My Ass',
slug: 'cleanmyass',
url: 'https://cleanmyass.com',
tags: ['ass-eating'],
alias: ['cma',
],
parent: 'teencoreclub',
parameters: {
siteId: 362,
},
},
{
name: 'College Party Time',
slug: 'collegepartytime',
url: 'https://collegepartytime.com',
alias: ['cpt',
],
parent: 'teencoreclub',
parameters: {
siteId: 278,
},
},
{
name: 'Cumaholic Teens',
slug: 'cumaholicteens',
url: 'https://cumaholicteens.com',
alias: ['ct',
'cumoholic teens',
'cumoholicteens',
],
tags: ['teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 186,
},
},
{
name: 'Cum Filled Throat',
slug: 'cumfilledthroat',
url: 'https://cumfilledthroat.com',
alias: ['cft',
],
parent: 'teencoreclub',
parameters: {
siteId: 280,
},
},
{
name: 'Cum Sumption Cocktail',
slug: 'cumsumptioncocktail',
url: 'https://cumsumptioncocktail.com',
alias: ['csc',
],
parent: 'teencoreclub',
parameters: {
siteId: 282,
},
},
{
name: 'Defiled18',
slug: 'defiled18',
url: 'https://defiled18.com',
alias: ['d18',
],
parent: 'teencoreclub',
parameters: {
siteId: 188,
},
},
{
name: 'Dirty Baby Sitter',
slug: 'dirtybabysitter',
url: 'https://dirtybabysitter.com',
alias: ['dbs',
],
parent: 'teencoreclub',
parameters: {
siteId: 284,
},
},
{
name: 'Double Teamed Teens',
slug: 'doubleteamedteens',
url: 'https://doubleteamedteens.com',
alias: ['dtt',
],
tags: ['teen',
'dp',
],
parent: 'teencoreclub',
parameters: {
siteId: 190,
},
},
{
name: 'Dreamteens HD',
slug: 'dreamteenshd',
url: 'https://dreamteenshd.com',
alias: ['dhd',
],
tags: ['teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 192,
},
},
{
name: 'Drill Her Butt',
slug: 'drillherbutt',
url: 'https://drillherbutt.com',
tags: ['anal'],
alias: ['dhb',
],
parent: 'teencoreclub',
parameters: {
siteId: 288,
},
},
{
name: 'Dual Throat',
slug: 'dualthroat',
url: 'https://dualthroat.com',
alias: ['dt',
],
parent: 'teencoreclub',
parameters: {
siteId: 290,
},
},
{
name: 'Gang Land Victims',
slug: 'ganglandvictims',
url: 'https://ganglandvictims.com',
alias: ['glv',
],
tags: ['gangbang',
],
parent: 'teencoreclub',
parameters: {
siteId: 292,
},
},
{
name: 'Girls Got Cream',
slug: 'girlsgotcream',
url: 'https://girlsgotcream.com',
alias: ['ggc',
],
parent: 'teencoreclub',
parameters: {
siteId: 194,
},
},
{
name: 'Hardcore Youth',
slug: 'hardcoreyouth',
url: 'https://hardcoreyouth.com',
alias: ['hcy',
],
parent: 'teencoreclub',
parameters: {
siteId: 196,
},
},
{
name: 'Little Hellcat',
slug: 'littlehellcat',
url: 'https://littlehellcat.com',
alias: ['lhc',
],
parent: 'teencoreclub',
parameters: {
siteId: 198,
},
},
{
name: 'Little Teen Suckers',
slug: 'littleteensuckers',
url: 'https://littleteensuckers.com',
alias: ['lts',
],
tags: ['teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 294,
},
},
{
name: 'MAIKO',
slug: 'maiko',
url: 'https://maiko.com',
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 566,
},
},
{
name: 'Make Teen Gape',
slug: 'maketeengape',
url: 'https://maketeengape.com',
alias: ['mtg',
],
tags: ['teen',
'gaping',
],
parent: 'teencoreclub',
parameters: {
siteId: 200,
},
},
{
name: 'Make Teen Moan',
slug: 'maketeenmoan',
url: 'https://maketeenmoan.com',
alias: ['mtm',
],
tags: ['teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 296,
},
},
{
name: 'Mega Penetrations',
slug: 'megapenetrations',
url: 'https://megapenetrations.com',
alias: ['mp',
],
parent: 'teencoreclub',
parameters: {
siteId: 298,
},
},
{
name: 'Messy Gang Bangs',
slug: 'messygangbangs',
url: 'https://messygangbangs.com',
alias: ['mgb',
],
tags: ['gangbang',
],
parent: 'teencoreclub',
parameters: {
siteId: 300,
},
},
{
name: 'My Black Coeds',
slug: 'myblackcoeds',
url: 'https://myblackcoeds.com',
alias: ['mbc',
],
tags: ['ebony',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 302,
},
},
{
name: 'My Latina Teen',
slug: 'mylatinateen',
url: 'https://mylatinateen.com',
alias: ['mlt',
],
tags: ['teen',
'latina',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 304,
},
},
{
name: 'Nasty Ass Lickers',
slug: 'nastyasslickers',
url: 'https://nastyasslickers.com',
tags: ['ass-eating'],
alias: ['nal',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 306,
},
},
{
name: 'Naughty Little Nymphs',
slug: 'naughtylittlenymphs',
url: 'https://naughtylittlenymphs.com',
alias: ['nln',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 308,
},
},
{
name: 'NC UK Sinners',
slug: 'ncuksinners',
url: 'https://ncuksinners.com',
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 568,
},
},
{
name: 'NC Verso Cinema',
slug: 'ncversocinema',
url: 'https://ncversocinema.com',
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 570,
},
},
{
name: 'Network Mixed',
slug: 'networkmixed',
url: 'https://networkmixed.com',
alias: ['anc',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 360,
},
},
{
name: 'Never Done That Before',
slug: 'neverdonethatbefore',
url: 'https://neverdonethatbefore.com',
alias: ['ndt',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 310,
},
},
{
name: 'Nylon Sweeties',
slug: 'nylonsweeties',
url: 'https://nylonsweeties.com',
alias: ['nsw',
],
parent: 'teencoreclub',
parameters: {
siteId: 202,
},
},
{
name: 'Pink Eye Sluts',
slug: 'pinkeyesluts',
url: 'https://pinkeyesluts.com',
alias: ['pes',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 312,
},
},
{
name: 'Plug2 Holes',
slug: 'plug2holes',
url: 'https://plug2holes.com',
alias: ['p2h',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 314,
},
},
{
name: 'Pussy Babes',
slug: 'pussybabes',
url: 'https://pussybabes.com',
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 556,
},
},
{
name: 'Road Gang Bangs',
slug: 'roadgangbangs',
url: 'https://roadgangbangs.com',
alias: ['rgb',
],
tags: ['gangbang',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 316,
},
},
{
name: 'Russian Teen Updates',
slug: 'russianteenupdates',
url: 'https://russianteenupdates.com',
tags: ['teen',
'russian',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 418,
},
},
{
name: 'School Bus Chicks',
slug: 'schoolbuschicks',
url: 'https://schoolbuschicks.com',
alias: ['sbc',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 318,
},
},
{
name: 'Seductive18',
slug: 'seductive18',
url: 'https://seductive18.com',
alias: ['s18',
],
parent: 'teencoreclub',
parameters: {
siteId: 204,
},
},
{
name: 'Show Me Gape',
slug: 'showmegape',
url: 'https://showmegape.com',
tags: ['gaping'],
alias: ['smg',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 320,
},
},
{
name: 'Shy Teachers Pet',
slug: 'shyteacherspet',
url: 'https://shyteacherspet.com',
alias: ['stp',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 322,
},
},
{
name: 'Small Tits Hunter',
slug: 'smalltitshunter',
url: 'https://smalltitshunter.com',
alias: ['sth',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 324,
},
},
{
name: 'Spermantino',
slug: 'spermantino',
url: 'https://spermantino.com',
alias: ['spe',
],
parent: 'teencoreclub',
parameters: {
siteId: 366,
},
},
{
name: 'TCC Network Archives',
slug: 'tccnetworkarchives',
url: 'https://tccnetworkarchives.com',
alias: ['all',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 176,
},
},
{
name: 'Teach My Ass',
slug: 'teachmyass',
url: 'https://teachmyass.com',
tags: ['anal'],
alias: ['tma',
],
parent: 'teencoreclub',
parameters: {
siteId: 368,
},
},
{
name: 'Teenagers Going Wild',
slug: 'teenagersgoingwild',
url: 'https://teenagersgoingwild.com',
alias: ['tgw',
],
tags: ['teen',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 326,
},
},
{
name: 'Teen Anal Casting',
slug: 'teenanalcasting',
url: 'https://teenanalcasting.com',
alias: ['tac',
],
tags: ['anal',
'teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 206,
},
},
{
name: 'Teen Drillers',
slug: 'teendrillers',
url: 'https://teendrillers.com',
alias: ['td',
],
tags: ['teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 208,
},
},
{
name: 'Teen Gina',
slug: 'teengina',
url: 'https://teengina.com',
alias: ['tg',
],
tags: ['teen',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 210,
},
},
{
name: 'Teens Love Blacks',
slug: 'teensloveblacks',
url: 'https://teensloveblacks.com',
alias: ['tlb',
],
tags: ['interracial',
'bbc',
'teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 328,
},
},
{
name: 'Teens Natural Way',
slug: 'teensnaturalway',
url: 'https://teensnaturalway.com',
alias: ['tnw',
],
tags: ['teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 212,
},
},
{
name: 'Teens Try Anal',
slug: 'teenstryanal',
url: 'https://teenstryanal.com',
alias: ['tta',
],
tags: ['anal',
'teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 330,
},
},
{
name: 'Teens Try Blacks',
slug: 'teenstryblacks',
url: 'https://teenstryblacks.com',
alias: ['ttb',
],
tags: ['interracial',
'bbc',
'teen',
],
parent: 'teencoreclub',
parameters: {
siteId: 214,
},
},
{
name: 'Teens Want Orgies',
slug: 'teenswantorgies',
url: 'https://teenswantorgies.com',
alias: ['two',
],
tags: ['teen',
'threesome',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 332,
},
},
{
name: 'Try Teens',
slug: 'tryteens',
url: 'https://tryteens.com',
alias: ['tt',
],
tags: ['teen',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 216,
},
},
{
name: 'Tug Job Queens',
slug: 'tugjobqueens',
url: 'https://tugjobqueens.com',
tags: ['handjob'],
alias: ['tjq',
],
parent: 'teencoreclub',
parameters: {
siteId: 334,
},
},
{
name: 'UK Sinners',
slug: 'uksinners',
url: 'https://uksinners.com',
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 558,
},
},
{
name: 'White Box Black Cocks',
slug: 'whiteboxblackcocks',
url: 'https://whiteboxblackcocks.com',
alias: ['wbc',
],
tags: ['interracial',
'bbc',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 336,
},
},
{
name: 'White Teens Black Cocks',
slug: 'whiteteensblackcocks',
url: 'https://whiteteensblackcocks.com',
alias: ['wbc',
],
tags: ['interracial',
'bbc',
'teen',
],
parent: 'teencoreclub',
hasLogo: false,
parameters: {
siteId: 218,
},
},
{
name: 'Young Throats',
slug: 'youngthroats',
url: 'https://youngthroats.com',
tags: ['blowjob', 'deepthroat', 'facefucking'],
alias: ['yt',
],
parent: 'teencoreclub',
parameters: {
siteId: 220,
},
}];
async function init() {
const results = await Promise.map(channels, async (channel) => {
try {
const res = await bhttp.head(channel.url, {
followRedirects: false,
responseTimeout: 30000,
});
console.log(res.statusCode, channel.url);
if (res.statusCode === 200) {
return channel;
}
throw new Error(`${channel.url} no longer available: ${res.statusCode}`);
} catch (error) {
console.error(channel.url, error.message);
return {
name: channel.name,
slug: channel.slug,
url: `https://teencoreclub.com/browsevideos/site/${channel.parameters.siteId}/${channel.name.replace(/\s+/g, '')}`,
...(channel.tags && { tags: channel.tags }),
...(channel.alias && { alias: channel.alias }),
parent: channel.parent,
...(channel.hasLogo !== undefined && { hasLogo: channel.hasLogo }),
parameters: channel.parameters,
};
}
}, { concurrency: 5 });
await fs.promises.writeFile('./tcc.json', JSON.stringify(results, null, 4));
console.log('done!');
}
init();