From 12c27722ee2a197f5c49dc1f70a824957f5704cc Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Sun, 8 Nov 2026 17:18:10 +0100 Subject: [PATCH] Removed unused scripts using bhttp and removed dependency. --- package-lock.json | 353 +---------------- package.json | 1 - src/media.js | 2 +- src/tools/analvids.js | 84 ---- src/tools/kink.js | 18 - src/utils/buffer.js | 118 ------ src/utils/img.js | 18 - src/utils/mofos.js | 21 - src/utils/scorelogos.js | 37 -- src/utils/stream.js | 55 --- src/utils/tcc.js | 827 ---------------------------------------- 11 files changed, 2 insertions(+), 1532 deletions(-) delete mode 100755 src/tools/analvids.js delete mode 100755 src/tools/kink.js delete mode 100755 src/utils/buffer.js delete mode 100755 src/utils/img.js delete mode 100755 src/utils/mofos.js delete mode 100755 src/utils/scorelogos.js delete mode 100755 src/utils/stream.js delete mode 100755 src/utils/tcc.js diff --git a/package-lock.json b/package-lock.json index 4cbf8dc9..d41cc062 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "@tensorflow/tfjs-core": "4.22.0", "@tensorflow/tfjs-node": "^4.22.0", "@vladmandic/human": "^3.3.6", - "bhttp": "^1.2.8", "bluebird": "^3.7.2", "bottleneck": "^2.19.5", "casual": "^1.6.2", @@ -718,9 +717,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -737,9 +733,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -756,9 +749,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -775,9 +765,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -794,9 +781,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -813,9 +797,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -832,9 +813,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -851,9 +829,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -870,9 +845,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -895,9 +867,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -920,9 +889,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -945,9 +911,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -970,9 +933,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -995,9 +955,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1020,9 +977,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1045,9 +999,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2648,34 +2599,6 @@ "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": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -3074,23 +2997,6 @@ "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": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", @@ -3106,21 +3012,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "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": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/config/-/config-5.0.1.tgz", @@ -3203,12 +3094,6 @@ "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": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/create-error/-/create-error-0.3.1.tgz", @@ -3433,12 +3318,6 @@ "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": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -3533,15 +3412,6 @@ "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": { "version": "1.24.2", "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": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4559,43 +4423,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": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -5842,12 +5669,6 @@ "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": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -6175,12 +5996,6 @@ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "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": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -6214,6 +6029,7 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, "license": "MIT" }, "node_modules/lodash.unionwith": { @@ -7251,12 +7067,6 @@ "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": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -7301,18 +7111,6 @@ "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": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -7384,36 +7182,6 @@ "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": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -8214,21 +7982,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": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -8439,84 +8192,6 @@ "dev": true, "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": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", @@ -8566,19 +8241,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": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-7.0.0.tgz", @@ -8758,12 +8420,6 @@ "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": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/umzug/-/umzug-2.3.0.tgz", @@ -9265,13 +8921,6 @@ "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": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/package.json b/package.json index 2ebc4857..434c0b67 100755 --- a/package.json +++ b/package.json @@ -49,7 +49,6 @@ "@tensorflow/tfjs-core": "4.22.0", "@tensorflow/tfjs-node": "^4.22.0", "@vladmandic/human": "^3.3.6", - "bhttp": "^1.2.8", "bluebird": "^3.7.2", "bottleneck": "^2.19.5", "casual": "^1.6.2", diff --git a/src/media.js b/src/media.js index 23037fb3..8fa232b0 100755 --- a/src/media.js +++ b/src/media.js @@ -30,7 +30,7 @@ const { fetchEntityReleaseIds } = require('./entity-releases'); const streamQueue = taskQueue(); // 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({ region: 'eu-central-1', diff --git a/src/tools/analvids.js b/src/tools/analvids.js deleted file mode 100755 index a5ea5b62..00000000 --- a/src/tools/analvids.js +++ /dev/null @@ -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(); diff --git a/src/tools/kink.js b/src/tools/kink.js deleted file mode 100755 index 62a86348..00000000 --- a/src/tools/kink.js +++ /dev/null @@ -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(); diff --git a/src/utils/buffer.js b/src/utils/buffer.js deleted file mode 100755 index ef3be73b..00000000 --- a/src/utils/buffer.js +++ /dev/null @@ -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(); diff --git a/src/utils/img.js b/src/utils/img.js deleted file mode 100755 index a0d544fe..00000000 --- a/src/utils/img.js +++ /dev/null @@ -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(); diff --git a/src/utils/mofos.js b/src/utils/mofos.js deleted file mode 100755 index 6324c73c..00000000 --- a/src/utils/mofos.js +++ /dev/null @@ -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(); diff --git a/src/utils/scorelogos.js b/src/utils/scorelogos.js deleted file mode 100755 index 527c7ff2..00000000 --- a/src/utils/scorelogos.js +++ /dev/null @@ -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(); diff --git a/src/utils/stream.js b/src/utils/stream.js deleted file mode 100755 index eae8b97f..00000000 --- a/src/utils/stream.js +++ /dev/null @@ -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(); diff --git a/src/utils/tcc.js b/src/utils/tcc.js deleted file mode 100755 index e65a3df2..00000000 --- a/src/utils/tcc.js +++ /dev/null @@ -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();